Note that there are some explanatory texts on larger screens.

plurals
  1. POListview On Multiple Button Clicks
    primarykey
    data
    text
    <p>I have 10 image buttons in one activity.Each button when clicked will start a new activity in this layout i want to have a list view that doesn't fill the full layout.So am guessing it would have to be a custom one.</p> <pre><code> package com.baha.beallhasall; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.ArrayAdapter; import android.widget.ImageButton; import android.widget.ListView; public class FirstActivityPage extends Activity implements OnClickListener{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.act_one); ImageButton btn1 = (ImageButton)findViewById(R.id.imageButton1); ImageButton btn2 = (ImageButton)findViewById(R.id.imageButton2); ImageButton btn3 = (ImageButton)findViewById(R.id.imageButton3); ImageButton btn4 = (ImageButton)findViewById(R.id.imageButton4); ImageButton btn5 = (ImageButton)findViewById(R.id.imageButton5); ImageButton btn6 = (ImageButton)findViewById(R.id.imageButton6); btn1.setOnClickListener(this); btn2.setOnClickListener(this); btn3.setOnClickListener(this); btn4.setOnClickListener(this); btn5.setOnClickListener(this); btn6.setOnClickListener(this); } @Override public void onClick(View v) { switch(v.getId()){ case R.id.imageButton1: Intent intent0 = new Intent(FirstActivityPage.this, FourActivityPage.class); startActivity(intent0); break; case R.id.imageButton2: Intent intent1 = new Intent(FirstActivityPage.this, FourActivityPage.class); startActivity(intent1); break; case R.id.imageButton3: Intent intent2 = new Intent(FirstActivityPage.this, FiveActivityPage.class); startActivity(intent2); break; case R.id.imageButton4: Intent intent3 = new Intent(FirstActivityPage.this, SixActivityPage.class); startActivity(intent3); break; case R.id.imageButton5: Intent intent4 = new Intent(FirstActivityPage.this, SevenActivityPage.class); startActivity(intent4); break; case R.id.imageButton6: Intent intent5 = new Intent(FirstActivityPage.this, ThirdActivityPage.class); startActivity(intent5); break; } } private void setListAdapter(ArrayAdapter&lt;String&gt; arrayAdapter) { // TODO Auto-generated method stub } private ListView getListView() { // TODO Auto-generated method stub return null; } } </code></pre> <p>This is my first activity that has the on clicks for my buttons.Is it possible to have my list view for all my image button activity's in there own class and not in this case statement.Because am thinking this what i have here with all the code for buttons is fine but i don't really think that one class should handle all this code.So which is the best way round this.</p> <p><a href="http://img17.imageshack.us/img17/4936/0b8o.jpg" rel="nofollow">http://img17.imageshack.us/img17/4936/0b8o.jpg</a> This image is just my project layout.</p> <p><a href="http://img594.imageshack.us/img594/9373/a7l8.png" rel="nofollow">http://img594.imageshack.us/img594/9373/a7l8.png</a> This image is what am trying to put in words but as i am new in this code world its easier to show you guys this way.</p> <p>Thanks </p> <p>NEW CODE</p> <pre><code> package com.example.testtest; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.ArrayAdapter; import android.widget.ImageButton; import android.widget.ListView; public class MainActivity extends Activity implements OnClickListener{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout_of_button); ImageButton btn1 = (ImageButton)findViewById(R.id.imageButton1); ImageButton btn2 = (ImageButton)findViewById(R.id.imageButton2); ImageButton btn3 = (ImageButton)findViewById(R.id.imageButton3); ImageButton btn4 = (ImageButton)findViewById(R.id.imageButton4); ImageButton btn5 = (ImageButton)findViewById(R.id.imageButton5); ImageButton btn6 = (ImageButton)findViewById(R.id.imageButton6); btn1.setOnClickListener(this); btn2.setOnClickListener(this); btn3.setOnClickListener(this); btn4.setOnClickListener(this); btn5.setOnClickListener(this); btn6.setOnClickListener(this); } @Override public void onClick(View v) { switch(v.getId()) { // if one of the image buttons is pressed... case R.id.imageButton1: case R.id.imageButton2: case R.id.imageButton3: case R.id.imageButton4: case R.id.imageButton5: case R.id.imageButton6: Intent intent = new Intent(this, Listviewact.class); // pass ID of pressed button to listview-activity intent.putExtra("buttonId", v.getId()); startActivity(intent); break; // here you could place handling of other clicks if necessary... } } private void setListAdapter(ArrayAdapter&lt;String&gt; arrayAdapter) { // TODO Auto-generated method stub } private ListView getListView() { // TODO Auto-generated method stub return null; } } </code></pre> <p>listviewact</p> <pre><code> package com.example.testtest; import android.app.Activity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.ListView; public class Listviewact extends Activity { public void onCreate(Bundle b) { super.onCreate(b); setContentView(R.layout.listview_layout); } public void onResume() { super.onResume(); int buttonId = getIntent().getIntExtra("buttonId", 0); int buttonIdx = getButtonIdx(buttonId); // find and set image according to buttonId int imageId = IMAGE_IDS[buttonIdx]; // image to show for given button ImageView imageView = (ImageView)findViewById(R.id.imageView1); imageView.setImageResource(imageId); // find and set listview imtes according to buttonId String[] items = LISTVIEW_DATA[buttonIdx]; // listview items to show for given button ListView listView = (ListView)findViewById(R.id.listView1); ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, items); setListAdapter(adapter); } private void setListAdapter(ArrayAdapter adapter) { // TODO Auto-generated method stub } // a little helper to map ids to array indices // to be able to fetch the correct image and listview data later private final static int[] BUTTON_IDS = new int[] { R.id.imageButton1, R.id.imageButton2, R.id.imageButton3, R.id.imageButton4, R.id.imageButton5, R.id.imageButton6 }; // 6 images private final static int[] IMAGE_IDS = new int[] { R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher }; // 6 different sets of strings for the listviews private final static String[][] LISTVIEW_DATA = new String[][] { {"First A", "First B", "First C"}, {"Second A", "Second B", "Second C"}, {"Third A", "Third B", "Third C"}, {"Forth A", "Forth B", "Forth C"}, {"Fifth A", "Fifth B", "Fifth C"}, {"Sixth A", "Sixth B", "Sixth C"}, }; // map button id to array index static private int getButtonIdx(int id) { for(int i = 0; i&lt;BUTTON_IDS.length; i++) { if (BUTTON_IDS[i] == id) return i; } return 0; // should not happen } } </code></pre> <p>Listview xml</p> <pre><code> &lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" &gt; &lt;ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="55dp" android:src="@drawable/ic_launcher" /&gt; &lt;ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/imageView1" android:layout_centerHorizontal="true" android:layout_marginTop="125dp" &gt; &lt;/ListView&gt; &lt;/RelativeLayout&gt; </code></pre> <p>I started this new project cos i didn't want to mess up my other project.I hope am close but when i click on the first image button nothing happens.</p> <p><a href="http://img836.imageshack.us/img836/1549/jo81.jpg" rel="nofollow">http://img836.imageshack.us/img836/1549/jo81.jpg</a> LOGCAT</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload