从editText获取用户输入并填充listView

时间:2015-09-28 07:20:07

标签: android

如何从一个活动中获取用户输入,并在另一个活动中获取用户数据populate the listView。我能够获得用户输入并在同一活动中填充listView。但现在我希望以一种形式获取用户输入并在另一个活动中填充列表。

我通过获取用户输入来填充listView的代码如下

public class MainActivity extends ListActivity {
ArrayList<String> list = new ArrayList<String>();

/** Declaring an ArrayAdapter to set items to ListView */
ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Button btn = (Button) findViewById(R.id.btnAdd);

    /** Defining the ArrayAdapter to set items to ListView */
    adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list);

    /** Defining a click event listener for the button "Add" */
    View.OnClickListener listener = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            EditText edit = (EditText) findViewById(R.id.txtItem);
            String name=edit.getText().toString();
            list.add(name);
            edit.setText("");
            adapter.notifyDataSetChanged();
        }
    };

    /** Setting the event listener for the add button */
    btn.setOnClickListener(listener);

4 个答案:

答案 0 :(得分:2)

  1. 您可以将用户输入/数据存储到本地数据库中;这将允许您在应用程序的任何位置访问您的数据 (建议,因为您正在处理sys.ShutdownHookThread { log.info("Stopping Spark Streaming...") ssc.stop(stopSparkContext = true, stopGracefully = true) log.info("Shutting down the application...") } )。

  2. 如果您的数据相对较小,您可以使用listview来存储数据。

答案 1 :(得分:0)

在您当前的活动(活动包含您的按钮)中,创建一个新的意图:

String name = ""; 
name = edit.getText().toString();
Intent i = new Intent(getApplicationContext(), NewActivity.class);
i.putExtra("keyword",name);
startActivity(i);

然后在NewActivity(活动包含Listview)中,检索这些值:

Bundle extras = getIntent().getExtras();
if (extras != null) {
    String name = extras.getString("keyword");
    if(name != ""){
        // adapter.notifyDataSetChanged();
    }
}

这是简单的方法,希望这个帮助

答案 2 :(得分:0)

在第二个Activity中声明一个公共方法,如

<强> SecondActivity.class

public static ArrayList<String> list = new ArrayList<String>();

/** Declaring an ArrayAdapter to set items to ListView */
ArrayAdapter<String> adapter

onCreate()
{
...
;
 adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list);
listview.setAdapter(adapter);
...
}

public static void ModifyList()
{
   adapter.notifyDataSetChanged();
}

<强> FirstActivity.class

 View.OnClickListener listener = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            EditText edit = (EditText) findViewById(R.id.txtItem);
            String name=edit.getText().toString();
            SecondActivity.list.add(name);
            edit.setText("");
            SecondActivity.ModifyList();
        }
    };

答案 3 :(得分:0)

从FirstActivity发送这样的ArrayList:

    Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
    intent.putStringArrayListExtra("Datalist",list);
    startActivity(intent);

在secondActivity中使用以下方式接收列表:

  Intent i = getIntent();  
  list = i.getStringArrayListExtra("Datalist");

然后在SecondActivitys列表视图中显示它