Android 从listview中的选定项创建新列表
此问题已修改为显示工作代码 当他们单击某个项目(如牛排)时,我希望该项目被放置到另一个列表中。如果他们选择了土豆,那也应该添加到这个新列表中,这样在最后我会有一个列表,显示用户选择的所有项目。这是我到目前为止所拥有的 午餐列表菜单.javaAndroid 从listview中的选定项创建新列表,android,listview,Android,Listview,此问题已修改为显示工作代码 当他们单击某个项目(如牛排)时,我希望该项目被放置到另一个列表中。如果他们选择了土豆,那也应该添加到这个新列表中,这样在最后我会有一个列表,显示用户选择的所有项目。这是我到目前为止所拥有的 午餐列表菜单.java package com.mycompany.lunch; import java.util.ArrayList; import android.app.Activity; import android.content.Intent; import andr
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"));
}
});
}
}
package com.mycompany.午餐;
导入java.util.ArrayList;
导入android.app.Activity;
导入android.content.Intent;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.AdapterView.OnItemClickListener;
导入android.widget.ArrayAdapter;
导入android.widget.Button;
导入android.widget.ListView;
导入android.widget.Toast;
公共类午餐列表菜单扩展活动{
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(最终捆绑包savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
最终ListView lv=(ListView)findViewById(R.id.listView1);
ArrayAdapter=ArrayAdapter.createFromResource(这个,R.array.午餐菜单,android.R.layout.simple\u列表\u项\u 1);
低压设置适配器(适配器);
final ArrayList myNewList=新ArrayList();
lv.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView arg0、视图arg1、整型arg2、长型arg3){
String item=lv.getItemAtPosition(arg2.toString();
字符串项排序;
itemordered=项目+“添加到列表”;
Toast.makeText(getApplicationContext(),itemordered,Toast.LENGTH_SHORT).show();
myNewList.add(项);
}
});
//列表视图按钮
按钮btnLunchList=(按钮)findViewById(R.id.lrList);
btnLunchList.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
setContentView(R.layout.selecteditems);
ListView selecteditems=(ListView)findViewById(android.R.id.list);
ArrayAdapter newadapter=新的ArrayAdapter(午餐列表菜单.this,android.R.layout.simple\u list\u item\u 1,myNewList);
选择editems.setAdapter(新建适配器);
}
});
}
公共作废shareMyList(视图五){
//“共享选定项目”按钮
按钮btnShareItems=(按钮)findViewById(R.id.shareMyList);
btnShareItems.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
意向共享=新意向(意向.行动\发送);
share.setType(“文本/普通”);
share.putExtra(Intent.EXTRA_文本,“我被发送!!”;
startActivity(Intent.createChooser(共享,“共享文本”));
}
});
}
}
我还创建了一个名为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为该列表提供信息
ArrayList<String> myNewList = new ArrayList<String>();
然后,每当您想设置列表时:
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);
ListView newList=(ListView)findviewbyd(R.id.your\u new\u list);
ArrayAdapter=newArrayAdapter(这个,myNewList,android.R.layout.simple\u list\u item\u 1);
setAdapter(适配器);
列出一个清单:
public class arbysListMenu extends ListActivity {
List<String> itemordered = null; // As global
/** Called when the activity is first created. */
.
.
.
.
public类arbysListMenu扩展ListActivity{
List itemordered=null;//作为全局
/**在首次创建活动时调用*/
.
.
.
.
然后在单击时将项目添加到itemordered列表:
@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
}
});
@覆盖
公共视图单击(AdapterView arg0、视图arg1、整型arg2、长型arg3){
//String item=lv.getItemAtPosition(arg2.toString();
add(lv.getItemAtPosition(arg2.toString());
////现在使用此itemordered列表填充另一个ListView适配器
}
});
1件事我忘了告诉大家。。。我是Java/Android新手。无论如何我尝试了上面的建议。我添加了final ArrayList myNewList=newarraylist();紧跟在最终ListView lv=(ListView)findViewById(R.id.listView1)之后;在onCreate中。然后,我将剩余代码添加到我的mclick的末尾。我收到一个错误,它在“new ArrayAdapter(this,myNewList,android.R.layout.simple_list_item_1);”下面加了红色下划线。。。错误:构造函数ArrayAdapter(new AdapterView.OnItemClickListener(){},ArrayList,int)未定义,这是因为您在OnItemClickListener中。。。您应该发送“ListMenu.this”而不是“this”。但是您不应该在那里执行这些代码,您只需要将您的项添加到myNewList和McClick方法中。然后,您应该在希望显示列表的任何位置找到并设置适配器;)我的坏:)它应该是这样的:ArrayAdapter=newArrayAdapter(ListMenu.this,android.R.layout.simple\u list\u item\u 1,myNewList);是的,这就是我要说的,你应该在它里面放一个listView,然后你只需要找到我前面提到的listView,然后设置适配器,就像我说的,现在。。希望会实现;)好的,我差不多拿到了。它现在将该项添加到新的selecteditems布局中,但如果我返回列表菜单并选择另一项,它将替换我先前选择的项。如何让它附加新项目?请看上面的代码更改和添加。好的,这是b
@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
}
});