Android:ListView在我从另一个活动传递数据时没有更新
我是android新手,正在制作基于listview的应用程序。在我的应用程序中,我有从活动2到活动1的项目。活动_1具有列表视图。当用户单击activity1的ADD按钮时,将调用Activity_2。活动2具有编辑文本。EditText的值应更新ListView。但它只接受Edittext的最后一个值 以下是活动2的代码:Android:ListView在我从另一个活动传递数据时没有更新,android,android-layout,android-intent,android-activity,android-listview,Android,Android Layout,Android Intent,Android Activity,Android Listview,我是android新手,正在制作基于listview的应用程序。在我的应用程序中,我有从活动2到活动1的项目。活动_1具有列表视图。当用户单击activity1的ADD按钮时,将调用Activity_2。活动2具有编辑文本。EditText的值应更新ListView。但它只接受Edittext的最后一个值 以下是活动2的代码: Intent intent = new Intent(ItemDetails.this, MainActivity.class);
Intent intent = new Intent(ItemDetails.this, MainActivity.class);
intent.putExtra("values", values);
startActivity(intent);
活动代码_1
ArrayList<String> list = new ArrayList<String>();
/** Declaring an ArrayAdapter to set items to ListView */
ArrayAdapter<String> adapter;
protected Context context;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/** Setting a custom layout for the list activity */
setContentView(R.layout.activity_main);
/** Reference to the add button of the layout main.xml */
Button btn = (Button) findViewById(R.id.btnAdd);
/** Reference to the delete button of the layout main.xml */
Button btnDel = (Button) findViewById(R.id.btnDel);
/** Defining the ArrayAdapter to set items to ListView */
adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_multiple_choice, list);
list.clear();
list.add("Aluminium foil");
/** Setting the adapter to the ListView */
setListAdapter(adapter);
String val="";
if(getIntent().getStringExtra("values")!=null && getIntent().getStringExtra("values").length() > 0){
val = getIntent().getStringExtra("values");
list.add(val);
}
adapter.notifyDataSetChanged();
ArrayList list=new ArrayList();
/**声明ArrayAdapter以将项设置为ListView*/
阵列适配器;
受保护的语境;
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
/**设置列表活动的自定义布局*/
setContentView(R.layout.activity_main);
/**对layout main.xml的add按钮的引用*/
按钮btn=(按钮)findViewById(R.id.btnAdd);
/**对layout main.xml的删除按钮的引用*/
按钮btnDel=(按钮)findViewById(R.id.btnDel);
/**定义ArrayAdapter以将项设置为ListView*/
adapter=new ArrayAdapter(这个,android.R.layout.simple\u list\u item\u多选,list);
list.clear();
列表。添加(“铝箔”);
/**将适配器设置为ListView*/
setListAdapter(适配器);
字符串val=”“;
如果(getIntent().getStringExtra(“值”)!=null&&getIntent().getStringExtra(“值”).length()>0){
val=getIntent().getStringExtra(“值”);
列表。添加(val);
}
adapter.notifyDataSetChanged();
现在,它将覆盖edittext的最后一个值。
非常感谢您的建议。您应该使用startActivityForResult开始第二个活动。然后在编辑文本中插入值,并完成活动并发送回结果。在activity1中,在Methodos-onActivityResult中截取结果并更新列表视图 查看有关活动结果的链接:
您应该使用startActivityForResult启动第二个活动。然后在EditText中插入该值,并完成活动并返回结果。在activity1中,在Methodos onActivityResult中截取结果并更新listview 查看有关活动结果的链接:
您应该使用startActivityForResult启动第二个活动。然后在EditText中插入该值,并完成活动并返回结果。在activity1中,在Methodos onActivityResult中截取结果并更新listview 查看有关活动结果的链接:
您应该使用startActivityForResult启动第二个活动。然后在EditText中插入该值,并完成活动并返回结果。在activity1中,在Methodos onActivityResult中截取结果并更新listview 查看有关活动结果的链接:
对于android要更新您的listview,您需要在
适配器上调用notifyDataSetChanged()
对于android要更新您的listview,您需要在适配器上调用notifyDataSetChanged()
对于android要更新您的listview,您需要调用notifyDataSetChanged()
在您的适配器上
对于android,要更新您的listview,您需要调用notifyDataSetChanged()
在您的适配器上
仅更新数据集是不够的,您必须让适配器
知道,以便它再次读取数据并更新列表。我看不到您的代码中调用了什么适配器,只需调用notifySetchDataSanged()
在您的适配器上,它应该可以工作。仅仅更新数据集是不够的,您必须让适配器知道,以便它再次读取数据并更新列表。我无法从代码中看到适配器的调用,只需调用notifyDataSetChanged()
在您的适配器上,它应该可以工作。仅仅更新数据集是不够的,您必须让适配器知道,以便它再次读取数据并更新列表。我无法从代码中看到适配器的调用,只需调用notifyDataSetChanged()
在您的适配器上,它应该可以工作。仅仅更新数据集是不够的,您必须让适配器知道,以便它再次读取数据并更新列表。我无法从代码中看到适配器的调用,只需调用notifyDataSetChanged()
在适配器上,它应该可以工作。有很多方法…但最简单的解决方案是使用:refreshDisplay();有很多方法…但最简单的解决方案是使用:refreshDisplay();执行此操作
String itemVal=getIntent().getStringExtra("values");
if(itemVal==null){
}else{
list.add(itemVal);
}
adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_multiple_choice, list);
这样做,
String itemVal=getIntent().getStringExtra("values");
if(itemVal==null){
}else{
list.add(itemVal);
}
adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_multiple_choice, list);
这样做,
String itemVal=getIntent().getStringExtra("values");
if(itemVal==null){
}else{
list.add(itemVal);
}
adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_multiple_choice, list);
这样做,
String itemVal=getIntent().getStringExtra("values");
if(itemVal==null){
}else{
list.add(itemVal);
}
adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_multiple_choice, list);
有什么好处吗
将适配器首次设置为
adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_multiple_choice, list);
listView.setAdapter(adapter);
从活动2回来后
String val="";
if(getIntent().getStringExtra("values")!=null && getIntent().getStringExtra("values").length > 0){
val = getIntent().getStringExtra("values");
list.add(val);
}
adapter.notifyDataSetChanged();
您基本上不必每次回来都创建新的适配器对象好吗
将适配器首次设置为
adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_multiple_choice, list);
listView.setAdapter(adapter);
从活动2回来后
String val="";
if(getIntent().getStringExtra("values")!=null && getIntent().getStringExtra("values").length > 0){
val = getIntent().getStringExtra("values");
list.add(val);
}
adapter.notifyDataSetChanged();
您基本上不必每次回来都创建新的适配器对象好吗
将适配器首次设置为
adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_multiple_choice, list);
listView.setAdapter(adapter);
从活动2回来后
String val="";
if(getIntent().getStringExtra("values")!=null && getIntent().getStringExtra("values").length > 0){
val = getIntent().getStringExtra("values");
list.add(val);
}
adapter.notifyDataSetChanged();
您基本上不必每次回来都创建新的适配器对象好吗
将适配器首次设置为
adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_multiple_choice, list);
listView.setAdapter(adapter);
从活动2回来后
String val="";
if(getIntent().getStringExtra("values")!=null && getIntent().getStringExtra("values").length > 0){
val = getIntent().getStringExtra("values");
list.add(val);
}
adapter.notifyDataSetChanged();
您基本上不必每次回来都创建新的适配器对象谢谢您的回复,但我想让您知道我使用了notifuDataSetChanged()下面感谢您的回复,但我想让您知道我使用了notifyDatasetChanged方法。下面是代码:/**定义ArrayAdapter以将项目设置为ListView*/adapter=new ArrayAdapter(这个,android.R.layout.simple_list_item_多项选择,list);list.add(“铝箔”);adapter.not