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);
?>