使用intent传递来自其他活动的数据并在listview中显示



我是新的android,我已经创建了两个活动,其中主活动包括一个按钮去secondActivity在第二个活动中,用户输入的名称和数据被带回主活动使用意图。我面临的问题是我想在listview

中显示数据

MainActivity.java

public class MainActivity extends Activity {
Button addcontact;
ListView listview;
//TextView name;
ArrayAdapter<String> listAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    listview = (ListView) findViewById(R.id.listView1);
    TextView name = (TextView) findViewById(R.id.txtname);
    addcontact = (Button) findViewById(R.id.addbtn);
    addcontact.setOnClickListener(new View.OnClickListener() {
        @Override
            public void onClick(View v) {
            Intent i = new Intent(MainActivity.this, SecondActivity.class);
            startActivityForResult(i, 1);
            savedata();
        }
    });
}
private void savedata() {
    Intent intent = getIntent();
    String fName = intent.getStringExtra("fname");
    List<String> ListElements = new ArrayList<String>(Arrays.asList(fName));
    ArrayAdapter<String> adapter = new ArrayAdapter<String>       (MainActivity.this,android.R.layout.simple_list_item_1, ListElements);     
    listview.setAdapter(adapter);
}

}

SecondActivity.java

公共类SecondActivity扩展Activity {

EditText edname;
Button addbtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);
    edname =(EditText) findViewById(R.id.edname);
    addbtn = (Button) findViewById(R.id.savebtn);
    addbtn.setOnClickListener(new View.OnClickListener() {
     @Override
    public void onClick(View v) {
    Intent intent = new Intent(SecondActivity.this,   MainActivity.class);
    intent.putExtra("fname", edname.getText().toString());
    startActivity(intent);
    }
  });

}}

我建议你不要重新创建你的第一个活动。使用startActivityForResult()代替该方法。

简而言之-开始另一个活动不一定是单向的。您还可以启动另一个活动并接收返回的结果。要接收结果,调用startActivityForResult()(而不是startActivity())。

>

最新更新