将数据从edittext发送到listview

时间:2014-08-01 13:29:19

标签: java android android-listview android-edittext

我创建了两个ActivitiesMainActivityListActivity),在MainActivity中,我有一个EditText和一个保存按钮。

ListActivity中,我有ListView

我想保存EditText中写入的值/数据/字符串文本,然后将其发送到Activity中的其他ListView

这就是它现在的样子,但我想我知道我错过了但却不知道怎么做。

MainActivity。

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final Button save = (Button) findViewById(R.id.btnSave);
        final EditText et = (EditText) findViewById(R.id.editText);

        save.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, ListActivity.class);
                intent.putExtra("data", et.getText().toString());
                startActivity(intent);
            }
        });
    }
}

ListActivity。

public class ListActivity extends Activity {    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list);
        ListView lv = (ListView) findViewById(R.id.listView);

        Intent intent = getIntent();

        String data = intent.getStringExtra("data");
    }
}

现在文本已保存在数据字符串中,但是如何将其粘贴到ListView

4 个答案:

答案 0 :(得分:2)

首先你要创建一个列表容器,最常用的是ArrayList,然后你必须创建一个ListAdapater,它会将你的数据列表扩展到ListView,你可以在这里找到一篇很好的文章解释它:{{3 }}

答案 1 :(得分:1)

以下是在ListView中添加内容的示例代码:

listV = (ListView) findViewById(R.id.list);

ArrayList<HashMap<String, String>> listItem = new ArrayList<HashMap<String, String>>();
HashMap<String, String> map;

while (...) {
    map = new HashMap<String, String>();
    map.put(stuff);
    listItem.add(map);
}

s = new SimpleAdapter (this.getBaseContext(), listItem, R.layout.list,
                       new String[] {"title", "desc"}, new int[] {R.id.title, R.id.desc});
listV.setAdapter(s);

答案 2 :(得分:0)

您应该创建ArrayAdapter<String>对象并将其设置为ListView

List<String> listItems = new ArrayList<String>();
listItems.add(data);
String[] items = {};
items = listItems.toArray(new String[listItems.size()]);
lv.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items));

答案 3 :(得分:0)

您可以从String添加TextView,然后将其添加到ArrayAdapter<String>,然后将其设置为Adapter的{​​{1}}

伪代码:

ListView

如果我正确理解了您的问题,您需要首先填充TextView textView = (TextView) getViewById(...); String s = textView.getText(); ArrayAdapter<String> adapter = new ArrayAdapter<String>(...); adapter.add(s); ListView lv = (ListView) getViewById(...) lv.setAdapter(adapter) ,然后将其发送到另一个活动。如果是这种情况,请不要尝试这样做,只需创建一个ListView字符串并传递它,然后在需要它的活动中创建ArrayList

编辑:

要解决您的问题,您可以使用ListViewBundle发送到您的其他活动,然后只需构建一个类似于上述代码的ArrayList<String>来填充ArrayAdapter类似的东西:

ListView

然后在您的其他活动(YourActivity)中,您可以:

 Intent intent = new Intent(getBaseContext(), YourActivity.class);
 intent.putExtra("ArrayListOfStrings", yourArrayList);
相关问题