我制作了一个用数组填充的 listView。我可以通过在名为 txtinputs
的文本框中输入数据,然后单击名为 btnAdds
的按钮,将数据添加到此 ListView ,当我将所有这些都放在一个类中时,这一切都很好.然而,我想要做的是在 2 个单独的屏幕上使用 2 个单独的类,txtinputs
和 btnAdds
在与 listView 不同的类中。当数据输入到 txtinputs
并选择 btnAdds
时,它会将数据添加到单独类的 listView 中。我想要一个名为 ListDeadlines 的类中的 listView,以及一个名为 AddDeadline 的类中的 textBox 和 Button。
我目前像这样将数据添加到 listView 中。
public ArrayList<String> arrayList;
public ArrayAdapter<String> adapter;
public EditText txtInput;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_deadlines);
final ListView listView = (ListView)findViewById(R.id.listv);
String[] items= {"HCI","ITM","Presentation"};
arrayList=new ArrayList<>(Arrays.asList(items));
adapter=new ArrayAdapter<String>(this,R.layout.list_item,R.id.txtitem,arrayList);
listView.setAdapter(adapter);
txtInput=(EditText)findViewById(R.id.txtinputs);
Button btAdd=(Button)findViewById(R.id.btnAdds);
btAdd.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
String newItem=txtInput.getText().toString();
arrayList.add(newItem);
adapter.notifyDataSetChanged();;
}
});
}
我曾尝试在我的 AddDeadline
类中这样做,但是我在单击按钮时获得了运行时间
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_deadline);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
final ListDeadlines lst= new ListDeadlines();
lst.txtInput=(EditText)findViewById(R.id.txtinput);
Button btAdd=(Button)findViewById(R.id.btnAdd);
btAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String newItem = lst.txtInput.getText().toString();
lst.arrayList.add(newItem);
lst.adapter.notifyDataSetChanged();
}
});
}
最佳答案
在您的 ListDeadLinesActivity
中,当用户点击“+”按钮时您想要启动 AddDeadlineActivity
以获得结果。
您可以将这段代码放在那个“+”按钮的 onClick
中。
Intent intent = new Intent(this, AddDeadlineActivity.class);
startActivityForResult(intent, ADD_DEADLINE_REQUEST);
ADD_DEADLINE_REQUEST
是请求码,可以声明一个static int。
@Override
protected void onCreate(Bundle savedInstanceState) {
// ...
btAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent returnIntent = getIntent();
returnIntent.putExtra("result", yourEditText.getText().toString());
setResult(RESULT_OK,returnIntent);
finish();
}
});
}
在您的 ListDeadLinesActivity
中覆盖 onActivityResult
方法,
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == ADD_DEADLINE_REQUEST){
if (resultCode == RESULT_OK) {
String item = data.getStringExtra("result");
arrayList.add(item);
adapter.notifyDataSetChanged();
}
}
}
关于java - 从单独的类添加到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35385093/