如何使用arraylist点击列表视图的项目时显示列表视图?

时间:2014-11-02 17:22:33

标签: android listview arraylist

我编写了一个显示列表视图的程序,当我点击列表视图的项目时,应显示另一个列表视图的新活动

MainAactivity

这里我传递了listview中的days数组,它完美地显示并在itemclick上打开了另一个活动,在我的新活动中,我想要一个listview,其中包含我在arraylist中添加的元素,就像我点击星期一一样在我的新列表视图中只需要星期一,当我点击星期二我只需要星期二在我的新列表视图中,我在textview的帮助下尝试了这个程序并且它工作正常,但我想在listview的帮助下尝试它,需要一些帮助

public class MainActivity extends Activity {

ListView list;
final ArrayList<String> arraylist = new ArrayList<>();
ArrayAdapter<String> adapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    list = (ListView) findViewById(R.id.listview1);


      arraylist.add("Monday"); 
      arraylist.add("Tuesday");
      arraylist.add("Wednesday"); 
      arraylist.add("Thursday");
      arraylist.add("Friday"); 
      arraylist.add("Saturday");
      arraylist.add("Sunday");


    final String[] days = { "Monday", "Tuesday", "Wednesday", "Thursday",
            "Friday", "Saturday", "Sunday" };
    adapter = new ArrayAdapter<String>(getBaseContext(),
            android.R.layout.simple_list_item_1, days);

    list.setAdapter(adapter);
    list.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
            // TODO Auto-generated method stub

            Intent intent = new Intent("com.demo.listview.LIST");
            intent.putExtra("name", arraylist);
            intent.putExtra("name", arraylist);



            startActivity(intent);

        }
    });

我的List.java有第二个列表视图,当我点击第一个列表视图上的特定项目时,我希望逐个显示arraylist元素

public class List extends Activity {
ListView lv;


@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.list);
    lv = (ListView) findViewById(R.id.listView1);

    Intent intent = getIntent();
ArrayList<String> arr = (ArrayList<String>)intent.getStringArrayList("name");

}
}

我知道我的两项活动都出错了 欢迎任何建议

2 个答案:

答案 0 :(得分:1)

在您的MainActivity中,无需

   final String[] days = { "Monday", "Tuesday", "Wednesday", "Thursday",
        "Friday", "Saturday", "Sunday" };

你可以像这样直接将ArrayList设置为ArrayAdapter,

        adapter = new ArrayAdapter<String>(getBaseContext(),
            android.R.layout.simple_list_item_1, arraylist);

对于onItemClick,

            Intent intent = new Intent("com.demo.listview.LIST");
            intent.putExtra("name", arraylist.get(position));
            startActivity(intent);

对于列表活动,再次使用,

final ArrayList<String> arraylist = new ArrayList<String>();

并在onCreate中,试试这个。

    Intent intent = getIntent();
    String day = intent.getStringExtra("name");
    arraylist.add(day);
    adapter = new ArrayAdapter<String>(getBaseContext(),
            android.R.layout.simple_list_item_1, arraylist);

让我们知道这是否适合你。

答案 1 :(得分:0)

@Arjun:您无需在第一个活动中添加一个arraylist。 如果您只希望将单击的项目移动到第二个活动,请使用  intent.putExtra(天[位置]) onItemClick函数给出了接收点击的项目的位置。 然后在第二个活动中使用意图中的额外内容....但是,如果您知道在第二个活动中只显示了一个项目,则需要在列表中显示单个项目。第二个活动的Textview是一个更好的选择。