首先,我搜索了很多其他帖子,但仍未找到它的修復程序。Android - 將項目添加到ListView從另一個活動
MainActivity
包含ListView
和ImageButton
需要AddActivity
。 這AddActivity
已得到EditText
(nameAddInput
)和Button
(addButton
)。
儘管點擊該Button
,在MainActivity
的ListView
保持爲空...不明白爲什麼...
這裏是MainActivity的代碼:
public class MainActivity extends AppCompatActivity {
static final int PICK_CONTACT_REQUEST = 0;
private ListView list;
private ArrayAdapter<String> adapter;
private ArrayList<String> arrayList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
list = (ListView) findViewById(R.id.itemsList);
arrayList = new ArrayList<>();
adapter = new ArrayAdapter<>(this, R.layout.listview_style1, android.R.id.text1, arrayList);
}
public void onClickAddButton(View view) {
Intent i = new Intent(MainActivity.this, AddActivity.class);
startActivityForResult(i, 2);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == PICK_CONTACT_REQUEST) {
if (resultCode == RESULT_OK) {
addNewItem();
}
}
}
public void addNewItem() {
Bundle addNameInfo = getIntent().getExtras();
if(addNameInfo == null)
return;
String nameInput = addNameInfo.getString("nameInput");
arrayList.add(nameInput);
list.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
}
在xml文件的MainActivity在ImageButton中:android:onClick="onClickAddButton"
的代碼AddActivity的:
public class AddActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add);
}
public void backToMain(View view) {
Intent i = new Intent();
EditText nameAddInput = (EditText) findViewById(R.id.nameAddInput);
String userNameText = nameAddInput.getText().toString();
i.putExtra("nameInput", userNameText);
setResult(RESULT_OK, i);
finish();
}
}
在AddActivity的XML文件中的按鈕:android:onClick="backToMain"
希望有人能幫助! 提前謝謝!
感謝您的快速響應。我試過像@testigrator說,仍然不工作。 – ng02
除了上面的內容,您還調用了startActivityForResult(x,2)(即請求代碼= 2),但是在您的onActivityResult回調函數中,您將針對您定義爲0的PICK_CONTACT_CODE檢查代碼。這些數字需要相等。 – Hai
它的工作!非常感謝!! ;) – ng02