从列表视图中选择的项目创建一个新列表
问题描述:
此问题已被修改为显示工作代码。从列表视图中选择的项目创建一个新列表
当他们点击牛排等物品时,我希望将该物品放入另一个列表中。如果他们然后选择土豆,那么也应该添加到这个新列表中,以便最后我将有一个列表显示用户选择的所有项目。这是我到目前为止。
LunchListMenu.java
package com.mycompany.lunch;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;
public class LunchListMenu extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.maincoarse);
final ListView lv=(ListView)findViewById(R.id.listView1);
ArrayAdapter<CharSequence> adapter=ArrayAdapter.createFromResource(this, R.array.lunch_menu,android.R.layout.simple_list_item_1);
lv.setAdapter(adapter);
final ArrayList<String> myNewList = new ArrayList<String>();
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
String item=lv.getItemAtPosition(arg2).toString();
String itemordered;
itemordered = item + " added to list";
Toast.makeText(getApplicationContext(), itemordered, Toast.LENGTH_SHORT).show();
myNewList.add(item);
}
});
// List View Button
Button btnLunchList = (Button) findViewById(R.id.lrList);
btnLunchList.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setContentView(R.layout.selecteditems);
ListView selecteditems = (ListView) findViewById(android.R.id.list);
ArrayAdapter<String> newadapter = new ArrayAdapter<String>(LunchListMenu.this, android.R.layout.simple_list_item_1, myNewList);
selecteditems.setAdapter(newadapter);
}
});
}
public void shareMyList(View v){
// Share Selected Items Button
Button btnShareItems = (Button) findViewById(R.id.shareMyList);
btnShareItems.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent share = new Intent(Intent.ACTION_SEND);
share.setType("text/plain");
share.putExtra(Intent.EXTRA_TEXT, "I'm being sent!!");
startActivity(Intent.createChooser(share, "Share Text"));
}
});
}
}
我还创建了一个新的布局叫做selecteditems.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:background="@drawable/main_background"
android:paddingLeft="10.0dip"
android:paddingTop="0.0dip"
android:paddingRight="10.0dip"
android:paddingBottom="10.0dip"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="100.0dip"
android:background="@drawable/title" />
<LinearLayout
android:orientation="horizontal"
android:background="@drawable/head"
android:layout_width="fill_parent"
android:layout_height="10.0dip" />
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="25dip"
android:textStyle="bold"
android:padding="10dip"
android:textColor="#ffffff"/>
</LinearLayout>
现在添加项目到新selecteditems。
答
只需创建一个arrayList并将其放入其中,然后找到您的“其他列表”并使用此arrayList提供该列表。
myNewList.add(item);
,然后每当你想设置列表:
ListView newList = (ListView) findViewById(R.id.your_new_list);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, myNewList, android.R.layout.simple_list_item_1);
newList.setAdapter(adapter);
答
以列表:
public class arbysListMenu extends ListActivity {
List<String> itemordered = null; // As global
/** Called when the activity is first created. */
.
.
.
.
然后添加项目
ArrayList<String> myNewList = new ArrayList<String>();
你的项目单击
时间顺序列表点击:
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
//String item=lv.getItemAtPosition(arg2).toString();
itemordered.add(lv.getItemAtPosition(arg2).toString());
//// Now FILL another ListView, adapter using this itemordered list
}
});
+0
我很抱歉,我没有接近知识渊博足够知道如何完成代码(意思是如何填充ListView),我可以看看代码和类型,看看它做了什么,并按照它来做足我想做的事情,但还没有从头开始写任何东西。 – Sobo 2012-07-20 12:47:51
1件事我忘了告诉大家...我是Java/Android的新手。无论如何。我尝试了上面的建议。我添加了最终的ArrayList myNewList = new ArrayList ();只是在最终ListView后lv =(ListView)findViewById(R.id.listView1);在onCreate。然后我将剩余的代码添加到我的onItemClick的末尾。我得到一个红色下划线的错误“new ArrayAdapter (this,myNewList,android.R.layout.simple_list_item_1);” ...错误:构造函数ArrayAdapter (new AdapterView.OnItemClickListener(){},ArrayList ,int)未定义 –
Sobo
2012-07-20 12:33:28
因此,问题解决了吗? – yahya 2012-07-20 12:34:39
这是因为你在OnItemClickListener中......你应该发送“ListMenu.this”而不是“this”。但是你不应该在那里做这些代码,你只需要将你的项目添加到myNewList onItemClick方法。然后,你应该找到并setAdapter您的列表,无论你想它来显示;) – yahya 2012-07-20 12:51:59