Android Custom ListView Master Detail (Open New Activity)
Android Custom ListView Master Detail (Open New Activity)
Android Custom ListView Master Detail (Open New Activity)
FacebookTwitterGoogle+Share
Hello guys.Today we discuss about Android Custom ListView Master Detail interface.Our
ListView shall have images and text.
Cheers.
1. package com.example.listviewmasterdetail;
2.
3. import android.app.Activity;
4. import android.content.Intent;
5. import android.os.Bundle;
6. import android.view.View;
7. import android.widget.AdapterView;
8. import android.widget.AdapterView.OnItemClickListener;
9. import android.widget.ListView;
10.
11. public class MainActivity extends Activity {
12.
13. ListView lv;
14.
15. @Override
16. protected void onCreate(Bundle savedInstanceState) {
17. super.onCreate(savedInstanceState);
18. setContentView(R.layout.activity_main);
19.
20. lv=(ListView) findViewById(R.id.listView1);
21.
22. //ADAPTER
23. CustomAdapter adapter=new CustomAdapter(this);
24. lv.setAdapter(adapter);
25.
26. //EVENTS
27. lv.setOnItemClickListener(new OnItemClickListener() {
28.
29. @Override
30. public void onItemClick(AdapterView<?> arg0, View v, int pos,
31. long id) {
32. // TODO Auto-generated method stub
33.
34. Intent i=new Intent(getApplicationContext(), PlayerActivity.class);
35.
36. //PASS INDEX OR POS
37. i.putExtra("Position", pos);
38. startActivity(i);
39.
40. }
41. });
42.
43. }
1. package com.example.listviewmasterdetail;
2.
3. import android.app.Activity;
4. import android.content.Intent;
5. import android.os.Bundle;
6. import android.view.View;
7. import android.view.View.OnClickListener;
8. import android.widget.Button;
9. import android.widget.ImageView;
10. import android.widget.TextView;
11.
12. public class PlayerActivity extends Activity {
13.
14. int pos=0;
15.
16. @Override
17. protected void onCreate(Bundle savedInstanceState) {
18. super.onCreate(savedInstanceState);
19. setContentView(R.layout.activity_player);
20.
21.
22. //GET PASSED DATA
23. Intent i=getIntent();
24. pos=i.getExtras().getInt("Position");
25.
26. //GET VIEWS
27. final CustomAdapter adapter=new CustomAdapter(this);
28. final ImageView img=(ImageView) findViewById(R.id.imageView1);
29. final TextView nameTv=(TextView)findViewById(R.id.nameTxt);
30. final TextView goalTv=(TextView) findViewById(R.id.goalTxt);
31.
32. //SET DATA
33. img.setImageResource(adapter.images[pos]);
34. nameTv.setText(adapter.names[pos]);
35. goalTv.setText(adapter.goals[pos]);
36.
37.
38. Button nextBtn=(Button) findViewById(R.id.button1);
39. //NEXT CLICKED
40. nextBtn.setOnClickListener(new OnClickListener() {
41.
42. @Override
43. public void onClick(View arg0) {
44. // TODO Auto-generated method stub
45.
46. int position=pos+1;
47.
48. //set data
49. img.setImageResource(adapter.images[position]);
50. nameTv.setText("Name: "+adapter.names[position]);
51. goalTv.setText("Goals: "+adapter.goals[position]);
52.
53. if(!(position>=adapter.getCount()-1))
54. {
55. pos +=1;
56. }else
57. {
58. pos = -1;
59. }
60.
61. }
62. });
63.
64.
65. }
66.
67.
68. }
1. package com.example.listviewmasterdetail;
2.
3.
4. import android.content.Context;
5. import android.view.LayoutInflater;
6. import android.view.View;
7. import android.view.ViewGroup;
8. import android.widget.BaseAdapter;
9. import android.widget.ImageView;
10. import android.widget.TextView;
11.
12. public class CustomAdapter extends BaseAdapter {
13.
14. private Context c;
15.
16. String[] names={"Michael Carrick","Diego Costa","Ander Herera","Juan
Mata","Oscar","Aaron Ramsey","Wayne Rooney","Alexis Sanchez","Van Persie"};
17. String[] goals={"3","25","9","11","9","11","14","18","13"};
18. int[]
images={R.drawable.carrick,R.drawable.costa,R.drawable.herera,R.drawable.mata,R.dra
wable.oscar,R.drawable.ramsey,R.drawable.rooney,R.drawable.sanchez,R.drawable.vanp
ersie};
19.
20. ; public CustomAdapter(Context ctx) {
21. // TODO Auto-generated constructor stub
22.
23. this.c=ctx;
24. }
25.
26. @Override
27. public int getCount() {
28. // TODO Auto-generated method stub
29. return names.length;
30. }
31.
32. @Override
33. public Object getItem(int pos) {
34. // TODO Auto-generated method stub
35. return names[pos];
36. }
37.
38. @Override
39. public long getItemId(int pos) {
40. // TODO Auto-generated method stub
41. return pos;
42. }
43.
44. @Override
45. public View getView(int pos, View convertView, ViewGroup parent) {
46. // TODO Auto-generated method stub
47.
48. if(convertView==null)
49. {
50. LayoutInflater inflater=(LayoutInflater)
c.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
51. convertView=inflater.inflate(R.layout.player, null);
52. }
53.
54. //GET VIEWS
55. TextView nameTxt=(TextView) convertView.findViewById(R.id.nameTv);
56. TextView goalsTxt=(TextView) convertView.findViewById(R.id.goalsTv);
57. ImageView img=(ImageView) convertView.findViewById(R.id.imageView1);
58.
59. //SET DATA
60. nameTxt.setText(names[pos]);
61. goalsTxt.setText(goals[pos]);
62. img.setImageResource(images[pos]);
63.
64.
65. return convertView;
66. }
67.
68.
69.
70. }
1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
2. xmlns:tools="http://schemas.android.com/tools"
3. android:layout_width="match_parent"
4. android:layout_height="match_parent"
5. android:paddingBottom="@dimen/activity_vertical_margin"
6. android:paddingLeft="@dimen/activity_horizontal_margin"
7. android:paddingRight="@dimen/activity_horizontal_margin"
8. android:paddingTop="@dimen/activity_vertical_margin"
9. tools:context=".MainActivity" >
10.
11. <ListView
12. android:id="@+id/listView1"
13. android:layout_width="match_parent"
14. android:layout_height="wrap_content"
15. android:layout_alignParentLeft="true"
16. android:layout_alignParentTop="true" >
17.
18. </ListView>
19.
20. </RelativeLayout>
1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
2. xmlns:tools="http://schemas.android.com/tools"
3. android:layout_width="match_parent"
4. android:layout_height="match_parent"
5. android:paddingBottom="@dimen/activity_vertical_margin"
6. android:paddingLeft="@dimen/activity_horizontal_margin"
7. android:paddingRight="@dimen/activity_horizontal_margin"
8. android:paddingTop="@dimen/activity_vertical_margin"
9. tools:context=".PlayerActivity" >
10.
11. <ImageView
12. android:id="@+id/imageView1"
13. android:layout_width="190dp"
14. android:layout_height="275dp"
15. android:layout_alignParentTop="true"
16. android:scaleType="fitCenter"
17. android:src="@drawable/carrick" />
18.
19. <Button
20. android:id="@+id/button1"
21. android:layout_width="wrap_content"
22. android:layout_height="wrap_content"
23. android:layout_alignParentBottom="true"
24. android:layout_alignParentRight="true"
25. android:text="Next" />
26.
27. <TextView
28. android:id="@+id/goalTxt"
29. android:layout_width="wrap_content"
30. android:layout_height="wrap_content"
31. android:layout_alignParentLeft="true"
32. android:layout_below="@+id/nameTxt"
33. android:layout_marginTop="24dp"
34. android:text="Goals : "
35. android:textAppearance="?android:attr/textAppearanceLarge" />
36.
37. <TextView
38. android:id="@+id/textView1"
39. android:layout_width="wrap_content"
40. android:layout_height="wrap_content"
41. android:layout_alignParentLeft="true"
42. android:layout_below="@+id/imageView1"
43. android:text="PLAYER PROFILE"
44. android:textAppearance="?android:attr/textAppearanceLarge" />
45.
46. <TextView
47. android:id="@+id/nameTxt"
48. android:layout_width="wrap_content"
49. android:layout_height="wrap_content"
50. android:layout_alignParentLeft="true"
51. android:layout_below="@+id/textView1"
52. android:layout_marginTop="17dp"
53. android:text="Name"
54. android:textAppearance="?android:attr/textAppearanceLarge" />
55.
56. </RelativeLayout>