[英]Pass ListView values to multiple EditText in another Activity
[英]How to pass multiple data from EditText(Main Activity) to ListView(Another Activity )
MainActivity 有一个列表视图和编辑按钮。 单击 Edit 按钮时,它会跳转到 EditAddItem 页面。
EditAddItem 类有一个编辑文本和按钮,每次当我在编辑文本上键入一些内容,然后单击保存时,数据将传递给 MainActivity 并显示在列表视图中。 有人可以给我一些提示吗?
protected void onCreate(Bundle savedInstanceState) {//This is code part of EditAddItem Class super.onCreate(savedInstanceState); setContentView(R.layout.activity_edit_add_item); editText = (EditText)findViewById(R.id.editTextTextPersonName); button = (Button) findViewById(R.id.button); cancelButton = (Button) findViewById(R.id.cancel); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(EditAddItem.this, MainActivity.class); intent.putExtra("text", editText.getText().toString()); startActivityForResult(intent, 0); } }); protected void onCreate(Bundle savedInstanceState) {//Code part of MainActivity super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button)findViewById(R.id.btnAddItem); listView = (ListView) findViewById(R.id.lstView); addItemEditText = (EditText)findViewById(R.id.editTextTextPersonName); items = new ArrayList<String>(); items.add("item one"); items.add("item two"); itemsAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items); listView.setAdapter(itemsAdapter); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { openEditItemView(); } });
在第一个活动中覆盖 onActivityResult() ,您需要正确实现将数据作为来自第二个活动的包传递并获取数据并更新列表并调用通知数据更改。
基本上你的逻辑被切换了。 您应该从 MainActivity startActivityForResult
并以 EditAddItemActiity 的结果结束。 然后在 MainActivity 中,您应该覆盖onActivityResult
以获取从 EditAddItemActivity 传递的文本。
你应该做这样的事情:
主活动.java
public static final int EDIT_ADD_ITEM_REQUEST = 1;
public static final String EXTRA_EDIT_ADD_ITEM = "EXTRA_EDIT_ADD_ITEM";
protected void onCreate(Bundle savedInstanceState) {//Code part of MainActivity
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button)findViewById(R.id.btnAddItem);
listView = (ListView) findViewById(R.id.lstView);
addItemEditText = (EditText)findViewById(R.id.editTextTextPersonName);
items = new ArrayList<String>();
items.add("item one");
items.add("item two");
itemsAdapter = new ArrayAdapter<String(this,android.R.layout.simple_list_item_1, items);
listView.setAdapter(itemsAdapter);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(this, EditAddItem.class);
startActivityForResult(intent, EDIT_ADD_ITEM_RESULT);
}
});
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == Activity.RESULT_OK) {
if(requestCode == EDIT_ADD_ITEM_REQUEST) {
String name = data.getStringExtra(EXTRA_EDIT_ADD_ITEM);
updateList(name);
}
}
}
private void updateList(String name) {
itemsAdapter.add(name);
}
}
编辑AddItem.java
protected void onCreate(Bundle savedInstanceState) {//This is code part of EditAddItem Class
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_edit_add_item);
editText = (EditText)findViewById(R.id.editTextTextPersonName);
button = (Button) findViewById(R.id.button);
cancelButton = (Button) findViewById(R.id.cancel);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent resultIntent = new Intent();
resultIntent.putExtra(MainActivity.EXTRA_EDIT_ADD_ITEM, editText.getText().toString());
setResult(Activity.RESULT_OK, resultIntent);
finish();
}
});
在您的 MainActivity(与您拥有 ListView 的活动相同)-
editButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, EditAddItem.class);
startActivityForResult(intent, 0);
}
});
// also override below method
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode ==0 && resultCode== RESULT_OK && data != null)
{
Sting editTextContent = data.getStringExtra("editText"); // your data
//now put data into your ListView
items = new ArrayList<String>();
items.add(editTextContent);
itemsAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, items);
listView.setAdapter(itemsAdapter);
}
}
在您的 EditAddItem 活动(editText 活动)中 -
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(!TextUtils.isEmpty(editText.getText().toString()))
{
Intent resultIntent = new Intent();
resultIntent.putExtra("editText", editText.getText().toString());
setResult(Activity.RESULT_OK, resultIntent);
finish();
} else
{
Toast.makeText(this, "EditText is empty!", Toast.LENGTH_SHORT).show();
}
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.