doupeng5320 2017-05-01 06:35
浏览 87

如何在用户单击任何listview项目时从MySql获取完整信息?

Click here to see image..

The above Image is about my task.. A listView showing list item coming from DB when user click on any item in a ListView , another activity open with complete description of particular item.

I have done a list which is coming from MySQL DB and onClick on listView i got position of particular item. But question is that how i retrieve full info of clicked item in another activity. i am retrieving data with PHP script and showing in android.

Here is the Java Code Below.

`public class Main2Activity extends Activity {

ListView lv, lv2;
ArrayAdapter<String> adapter;
String adress = "http://192.168.42.25/getinfo.php";
InputStream is = null;
String line = null;
String result = null;
String[] data;
public static String temp;
//String[] data2;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2);

    lv = (ListView) findViewById(R.id.listview1);
    //lv2 = (ListView) findViewById(R.id.listview2);

    //ALLOW NETWORK IN MAIN THREAD
    StrictMode.setThreadPolicy((new StrictMode.ThreadPolicy.Builder().permitNetwork().build()));

    //RETRIEVE
    getData();

    //ADAPTER

    adapter = new ArrayAdapter<String>(this , android.R.layout.simple_list_item_1,data);
    //ArrayAdapter<String> itemsAdapter =
            //new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, data2);

    lv.setAdapter(adapter);
    //lv2.setAdapter(itemsAdapter);

    lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Intent i = new Intent(Main2Activity.this , MainActivity.class);
            Toast.makeText(Main2Activity.this , position + "Selected" , Toast.LENGTH_SHORT).show();
            startActivity(i);
             temp = Integer.toString(position);
        }
    });

}

private void getData()
{
   try {
       URL url = new URL(adress);
       HttpURLConnection con = (HttpURLConnection) url.openConnection();

       con.setRequestMethod("GET");

       is = new BufferedInputStream(con.getInputStream());

   }catch (Exception e)
   {
       e.printStackTrace();
   }

    //READ IS CONTENT INTO A STRING
    try
    {
        BufferedReader br = new BufferedReader(new InputStreamReader(is));
        StringBuilder sb = new StringBuilder();

        while ((line =br.readLine()) != null)
        {
            sb.append(line+ "
");

        }
        is.close();
        result = sb.toString();

    }catch (Exception e)
    {
        e.printStackTrace();;
    }
    //PARSE JSON DATA
    try
    {
        JSONArray js = new JSONArray(result);
        JSONObject jo = null;

        data = new String[js.length()];
        //data2 = new String[js.length()];

        for (int i =0; i<js.length(); i++)
        {
            jo = js.getJSONObject(i);
            data[i] = jo.getString("name");
            //data2[i] = jo.getString("email");


        }
    } catch (JSONException e) {
        e.printStackTrace();
    }

}

}

Here is the PHP Code which is retrieving all data.

$user = "xxx";
$pass = "xxx";
$host = "localhost";
$db_name = "user_db";


$con = mysqli_connect($host,$user,$pass,$db_name);

if(mysqli_connect_error($con))
{
    echo "Failed to connect";
}

$query = mysqli_query($con , "SELECT * FROM userdata");

if($query)
{
    while ($row=mysqli_fetch_array($query)) 
    {

        $flag[] = $row;
        # code...
    }

    print(json_encode($flag));
}

mysqli_close($con);
?>
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 树莓派与pix飞控通信
    • ¥15 自动转发微信群信息到另外一个微信群
    • ¥15 outlook无法配置成功
    • ¥30 这是哪个作者做的宝宝起名网站
    • ¥60 版本过低apk如何修改可以兼容新的安卓系统
    • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
    • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
    • ¥50 有数据,怎么用matlab求全要素生产率
    • ¥15 TI的insta-spin例程
    • ¥15 完成下列问题完成下列问题