MainActivity具有一个列表视图和编辑按钮。单击“编辑”按钮后,它会跳到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();
}
});
答案 0 :(得分:0)
在第一个活动中覆盖onActivityResult(),您需要正确地实现从第二个活动中作为捆绑传递数据的方式,并获取数据并更新列表并调用通知数据更改。
答案 1 :(得分:0)
基本上,您的逻辑已切换。您应该startActivityForResult
来自MainActivity并完成EditAddItemActiity的结果。然后,在MainActivity中,您应该覆盖onActivityResult
才能从EditAddItemActivity传递文本。
您应该执行以下操作:
MainActivity.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);
}
}
EditAddItem.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();
}
});
答案 2 :(得分:0)
在您的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();
}
}
});