Java 如何从不同的活动中填充列表视图而不启动该活动
我想将项目列表添加到购物车中,当用户点击购物车选项时,从应用程序的不同活动中选择的所有项目都会加载到购物车中。意图启动一个新活动,我不想在用户每次添加任何项目时启动购物车活动。我使用了共享首选项,但它会一次又一次地更新同一列表项,或者使应用程序崩溃。我是android新手,任何帮助都将不胜感激。提前谢谢Java 如何从不同的活动中填充列表视图而不启动该活动,java,android,Java,Android,我想将项目列表添加到购物车中,当用户点击购物车选项时,从应用程序的不同活动中选择的所有项目都会加载到购物车中。意图启动一个新活动,我不想在用户每次添加任何项目时启动购物车活动。我使用了共享首选项,但它会一次又一次地更新同一列表项,或者使应用程序崩溃。我是android新手,任何帮助都将不胜感激。提前谢谢 public class NewClass extends Activity { private ListView mCompleteListView; private List<Str
public class NewClass extends Activity {
private ListView mCompleteListView;
private List<String> mItems;
private CompleteListAdapter mListAdapter;
private String myData;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.new_class);
SharedPreferences sharedPreferences = getSharedPreferences("MyData",
Context.MODE_PRIVATE);
myData = sharedPreferences.getString("SharedData", "none");
initViews();
addItemsToList();
mItems = new ArrayList<String>();
mListAdapter = new CompleteListAdapter(this, mItems);
mCompleteListView.setAdapter(mListAdapter);
}
private void initViews() {
mCompleteListView = (ListView) findViewById(R.id.completeList);
}
private void addItemsToList() {
mItems.add(myData );
mListAdapter.notifyDataSetChanged();
}
}
公共类NewClass扩展活动{
私有ListView MCompletListView;
私人名单;
专用的CompleteListAdapter MLIStaAdapter;
私有字符串myData;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.new_类);
SharedReferences SharedReferences=GetSharedReferences(“MyData”,
上下文。模式(私人);
myData=SharedReferences.getString(“SharedData”、“none”);
initViews();
addItemsToList();
mItems=新的ArrayList();
mListAdapter=新的CompleteListAdapter(此为mItems);
setAdapter(mListAdapter);
}
私有void initViews(){
mcCompleteListView=(ListView)findViewById(R.id.completeList);
}
私有void addItemsToList(){
添加(myData);
mListAdapter.notifyDataSetChanged();
}
}
我只想从其他几个活动中填充购物车的列表项,而不启动该活动。这不是最好的方法,请阅读有关viewmodel的内容, 对话和房间 长话短说,您希望创建一个保存购物车数据的数据库。(房间)然后你就可以在应用程序中的任何地方得到它。 或 您可以将数据作为变量保存在viewmodel中,并通过获取活动的viewmodel与dialogfragment(购物车)通信
祝你一切顺利:)有很多方法。使用singletone类为arraylist生成getter setter方法,或者您可以将静态数组列表作为常量类,并在整个应用程序中使用它。您还可以使用数据库。