Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从不同的活动中填充列表视图而不启动该活动_Java_Android - Fatal编程技术网

Java 如何从不同的活动中填充列表视图而不启动该活动

Java 如何从不同的活动中填充列表视图而不启动该活动,java,android,Java,Android,我想将项目列表添加到购物车中,当用户点击购物车选项时,从应用程序的不同活动中选择的所有项目都会加载到购物车中。意图启动一个新活动,我不想在用户每次添加任何项目时启动购物车活动。我使用了共享首选项,但它会一次又一次地更新同一列表项,或者使应用程序崩溃。我是android新手,任何帮助都将不胜感激。提前谢谢 public class NewClass extends Activity { private ListView mCompleteListView; private List<Str

我想将项目列表添加到购物车中,当用户点击购物车选项时,从应用程序的不同活动中选择的所有项目都会加载到购物车中。意图启动一个新活动,我不想在用户每次添加任何项目时启动购物车活动。我使用了共享首选项,但它会一次又一次地更新同一列表项,或者使应用程序崩溃。我是android新手,任何帮助都将不胜感激。提前谢谢

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方法,或者您可以将静态数组列表作为常量类,并在整个应用程序中使用它。您还可以使用数据库。