Android 将两项活动结合在一起

Android 将两项活动结合在一起,android,android-studio,crash,Android,Android Studio,Crash,好的,我正在制作一个应用程序,我使用编辑文本来写任何东西,当我按下一个按钮时,它会将我在编辑中写的任何东西添加到一个列表视图中,它会工作,但我希望列表处于一个不同于按钮和编辑文本的活动中,所以我在不更改代码的情况下移动了它。有人能解决这个问题吗 顺便说一句,所有的变量都是公共的 public class MainActivity extends AppCompatActivity { public ArrayList<String> arrayList2; publi

好的,我正在制作一个应用程序,我使用编辑文本来写任何东西,当我按下一个按钮时,它会将我在编辑中写的任何东西添加到一个列表视图中,它会工作,但我希望列表处于一个不同于按钮和编辑文本的活动中,所以我在不更改代码的情况下移动了它。有人能解决这个问题吗

顺便说一句,所有的变量都是公共的

public class MainActivity extends AppCompatActivity {
    public ArrayList<String> arrayList2;
    public ArrayAdapter<String> adapter,adapter2;
    public EditText editText,editText2;
    public ArrayList<String> itemList,itemList2;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        String[] items = {};
        itemList = new ArrayList<String>(Arrays.asList(items));
        adapter = new ArrayAdapter<String>(this, R.layout.activity_list_layout,R.id.txtItem,itemList);
        ListView listV = (ListView)findViewById(R.id.list_layout);
        listV.setAdapter(adapter);
        editText = (EditText)findViewById(R.id.thingadd);
        Button btAdd = (Button)findViewById(R.id.add);

        String[] age = {};
        arrayList2 = new ArrayList<String>(Arrays.asList(age));
        itemList2 = new ArrayList<String>(Arrays.asList(age));
        adapter2 = new ArrayAdapter<String>(this, R.layout.activity_list__layout2,R.id.txtage,itemList2);
        ListView listV2 = (ListView)findViewById(R.id.Age);
        listV2.setAdapter(adapter2);
        editText2 = (EditText)findViewById(R.id.agetxt);

        btAdd.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String newItem=editText.getText().toString();
                String newItem2=editText2.getText().toString();

                itemList.add(newItem);
                itemList2.add(newItem2);

                adapter.notifyDataSetChanged();
                adapter2.notifyDataSetChanged();
            }
        });
    }
}
public类MainActivity扩展了AppCompatActivity{
公共ArrayList ArrayList 2;
公共阵列适配器,适配器2;
公共编辑文本编辑文本,编辑文本2;
公共arraylistitemlist,itemList2;
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
字符串[]项={};
itemList=newarraylist(Arrays.asList(items));
适配器=新阵列适配器(this,R.layout.activity\u list\u layout,R.id.txtItem,itemList);
ListView listV=(ListView)findViewById(R.id.list\u布局);
listV.setAdapter(适配器);
editText=(editText)findViewById(R.id.thingadd);
按钮btAdd=(按钮)findViewById(R.id.add);
字符串[]年龄={};
arrayList2=新的ArrayList(Arrays.asList(age));
itemList2=新的ArrayList(Arrays.asList(age));
adapter2=新阵列适配器(this,R.layout.activity\u list\u layout2,R.id.txtage,itemList2);
ListView listV2=(ListView)findViewById(R.id.Age);
listV2.setAdapter(适配器2);
editText2=(EditText)findViewById(R.id.agetxt);
btAdd.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
String newItem=editText.getText().toString();
字符串newItem2=editText2.getText().toString();
itemList.add(newItem);
itemList2.add(newItem2);
adapter.notifyDataSetChanged();
adapter2.notifyDataSetChanged();
}
});
}
}

您可以使用SQLite数据库来实现这一点,您可以将一个活动中的数据保存在数据库中,然后从另一个活动中读取数据并将其显示在listview中。

您有两个选项来实现这一点

  • 您可以使用任何数据库服务。存储值并在下一个活动中显示它们。但这需要在手机中启用互联网服务
  • 您可以使用intent。将这些输入转换为字符串类型,并将其传递给下一个活动,并使用ID显示它们。此类型不需要Internet服务。要了解更多关于这方面的信息

  • 是的,我尝试使用SQLite,但如果我使用SQL,应用程序将无法打开