0

这是我的主要代码

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<String> arrayAdapter) {
// TODO Auto-generated method stub

}

private ListView getListView() {
// TODO Auto-generated method stub
return null;
 }
 }

这是我的列表视图代码。

 import android.app.Activity;
 import android.content.Intent;
 import android.graphics.Typeface;
 import android.os.Bundle;
 import android.view.View;
 import android.widget.AdapterView;
 import android.widget.AdapterView.OnItemClickListener;
 import android.widget.ArrayAdapter;
 import android.widget.ImageView;
 import android.widget.ListView;
 import android.widget.TextView;
 import android.widget.Toast;

   public class Listviewact extends Activity {

public void onCreate(Bundle b) {
    super.onCreate(b);
    setContentView(R.layout.listview_layout);

    Typeface tf = Typeface.createFromAsset(getAssets(),"fonts/AlexBrush-Regular-OTF.otf");
    TextView tv = (TextView) findViewById(R.id.textView1);
    tv.setTypeface(tf);
}

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);
    listView.setAdapter(adapter);

    listView.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {

            if(position == 0)
            {
            //code specific to first list item    
                     Intent myIntent = new Intent(view.getContext(), Information.class);
                         startActivityForResult(myIntent, 0);
            }

            if(position == 1)
            {
            //code specific to 2nd list item    
                     Intent myIntent = new Intent(view.getContext(), Information.class);
                         startActivityForResult(myIntent, 0);
            }
                }
              });
            // When clicked, show a toast with the TextView text
            //Or do whatever you need.
}


        public void onItemClick1(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
            // TODO Auto-generated method stub

        }




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.1,
    R.drawable.2,
    R.drawable.3,
    R.drawable.4,
    R.drawable.5,
    R.drawable.6
};

// 6 different sets of strings for the listviews
private final static String[][] LISTVIEW_DATA = new String[][] {
    {"First A", "First B", "First C", "First D","First E","First F"},
    {"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<BUTTON_IDS.length; i++) {
        if (BUTTON_IDS[i] == id) return i;
    }
    return 0;    // should not happen
}
 }

我想做的,我发现很难的是,当我的任何列表视图被点击时,它们都进入相同的布局但具有不同的数据/信息,这张图片是向你们展示的最佳方式。http://img40.imageshack.us/img40/705/f6h9.png。我在想,如果我可以拥有一个可以重复使用的课程并且没有 50 个活动来减慢速度,那就太好了。

图像是我想做的。如果可能的话,在一侧有文字,即酒店:宠物、景观、停车、儿童。然后我想为左侧的结果调用不同的信息。NO 宠物停车 YES 等。

4

1 回答 1

0

好吧,如果您layout是相同的,那么您可以使用相同的Activity,但是代码可能会变得复杂。

项目是ListView动态生成的Google Maps Places,还是您事先专门决定的选项?如果是前者,那么您必须从数据库中获取数据,因为您无法为所有可能性编码,如果是后者,您也可以显式编码。

之后在下一页上,如果您使用数据库,则从 a 获取数据SQLite database,或者如果后一种情况使用Intent.getExtra(data)每个数据并将这些值分配给Textfields.

如果我理解你的问题,这应该有效。

于 2013-07-15T16:48:34.617 回答