【问题标题】:how to display a listview when clicked on the item of a listview with the use of arraylist?使用arraylist单击列表视图的项目时如何显示列表视图?
【发布时间】:2014-11-02 17:22:32
【问题描述】:

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

MainAactivity

在这里,我在 listview 中传递 days 数组,该数组显示完美,并且在 itemclick 上打开另一个活动,在我的新活动中,我想要一个包含我在 arraylist 中添加的元素的 listview,就像我单击星期一时一样在我的新列表视图中只需要星期一,当我点击星期二时,我只需要在我的新列表视图中的星期二,我在 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");

}
}

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

【问题讨论】:

    标签: android listview arraylist


    【解决方案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);
    

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 您好,欢迎来到Stack Overflow!花点时间浏览一下tourhelp center。你的回答有点难以理解。您可以对其进行编辑以使其更清晰(拼写和语法)。
      • 是的先生,我知道这就是我在描述中提到的,我已经尝试使用 textview 并且它有效,但我想用 listview 尝试它,只是尝试一下先生,想学习所有可能的方法显示一个项目,无论是 textview 、 listview 还是 imageview
      猜你喜欢
      • 1970-01-01
      • 2020-07-26
      • 1970-01-01
      • 2014-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多