我编写了一个显示列表视图的程序,当我点击列表视图的项目时,应显示另一个列表视图的新活动
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");
}
}
我知道我的两项活动都出错了 欢迎任何建议
答案 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是一个更好的选择。