使用Intent Extras填充自定义列表 - Android

时间:2016-09-13 21:12:29

标签: android listview android-intent

我是一个应用程序,它基本上是一个空活动(空列表视图),在工具栏中有一个添加按钮,单击该按钮将带您进入另一个具有两个编辑文本字段和一个按钮的活动(以提交活动,换句话说,将意图额外发送到第一个活动)。我想从该活动中获取这些输入(两者都是字符串),并在第一个活动的列表视图中显示它们。

我已经创建了工具栏和按钮,并将自定义列表视图及其适配器放在第一个活动中,而在第二个活动中,我创建了必要的视图以及意图(用于传递两个字符串)。

问题是,在第二个活动中,当我将intent extras传递给第一个活动时,每次都会创建一个新的list-view而不是附加list-view。

每次用户添加两个输入时,有人可以帮我添加意图附加内容而不是创建新列表吗?

这是第一个活动中的onCreate方法:

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my_countries);

    ActionBar actionBar = getActionBar();
    if(actionBar != null)
    actionBar.setDisplayHomeAsUpEnabled(true);

    listView = (ListView) findViewById(R.id.listView);
    populateList();

}

这是populateList();

    public void populateList(){
    Bundle countryData = getIntent().getExtras();
    if (countryData == null){
        return;
    }
    String country = countryData.getString("country");
    String year = countryData.getString("year");

    ArrayAdapter<Country> adapter = new CustomAdapter();
    listView.setAdapter(adapter);
    countryList.add(new Country(country, year));
}

这是适配器:

    private class CustomAdapter extends ArrayAdapter<Country>{


    public CustomAdapter() {
        super(MyCountries.this, R.layout.list_item, countryList);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View view = convertView;
        if (convertView == null){
            view  =getLayoutInflater().inflate(R.layout.list_item, parent, false);
        }

        Country currentCountry = countryList.get(position);
        TextView countryText = (TextView) view.findViewById(R.id.countryName);
        countryText.setText(currentCountry.getCountryName());

        TextView yearText = (TextView) view.findViewById(R.id.yearOfVisit);
        yearText.setText(currentCountry.getYear());

        notifyDataSetChanged();
        return view;
    }

}

这是用于提交输入的onClick():

public void onClick(View v) {

    String country = addCountry.getText().toString();
    String year = addYear.getText().toString();

    Intent result = new Intent(this, MyCountries.class);
    result.putExtra("country", country);
    result.putExtra("year", year);
    startActivity(result);
}

非常感谢你。 任何帮助或指导将不胜感激。

0 个答案:

没有答案