为了账号安全,请及时绑定邮箱和手机立即绑定

如何在TextView中显示ArrayList的值?

如何在TextView中显示ArrayList的值?

繁华开满天机 2023-09-27 10:36:56
我想在 TextView 中显示存储在 ArrayList 中的值,这样当应用程序运行时,名称就会与其他详细信息一起出现在 TextView 中。我可以从 ArrayList 读取值并将它们显示在 logcat 中。它们也显示在 ListView 上,但我无法让它们显示在 TextView 上。private ArrayList<Country> countries;    private ArrayList<Country> countries;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        lvCountries = findViewById(R.id.main_activity_lv_countries);        tvDetails = findViewById(R.id.activity_country_details);        lvCountries.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {                //create an intent for the FlagDisplayActivity                Intent intentBundle = new Intent(MainActivity.this, FlagDisplayActivity.class);                Bundle bundleName = new Bundle();                //put arg2 as an extra in the intent. arg2 represents the item clicked on                //e.g arg2 will be 0 if the first item was clicked                intentBundle.putExtra(countries.get(position).getName(), countries.get(position).getFlagImageResourceId());                //start the activity                startActivityForResult(intentBundle, DELETE_REQUEST);            }        });信息不会显示在 TextView 中。
查看完整描述

1 回答

?
当年话下

TA贡献1890条经验 获得超9个赞

这是通过 CustomAdapter 在 ListView 中的数组列表中显示国家名称和人口的完整工作代码。请按照列出的步骤操作。已在您的 MainActivity 中列出查看 lvCountries。


1.Country.java


public class Country {


String name;int population; String capital,language,currentcy;

int image;


public Country(String name, int population, String capital, String language, String currentcy, int image) {

    this.name = name;

    this.population = population;

    this.capital = capital;

    this.language = language;

    this.currentcy = currentcy;

    this.image = image;

}


public String getName() {

    return name;

}


public void setName(String name) {

    this.name = name;

}


public int getPopulation() {

    return population;

}


public void setPopulation(int population) {

    this.population = population;

}


public String getCapital() {

    return capital;

}


public void setCapital(String capital) {

    this.capital = capital;

}


public String getLanguage() {

    return language;

}


public void setLanguage(String language) {

    this.language = language;

}


public String getCurrentcy() {

    return currentcy;

}


public void setCurrentcy(String currentcy) {

    this.currentcy = currentcy;

}


public int getImage() {

    return image;

}


public void setImage(int image) {

    this.image = image;

}

}

在布局中的res中添加entity_country.xml


<TextView

    android:id="@+id/lit_item_name"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:textSize="15sp"

    android:textColor="#000"

    />


<TextView

    android:id="@+id/lit_item_population"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:textSize="15sp"

    android:textColor="#89a"/>


<TextView

    android:id="@+id/lit_item_capital"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:textSize="15sp"

    android:textColor="#f00"/>


<TextView

    android:id="@+id/lit_item_language"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:textSize="15sp"

    android:textColor="#7788ff"/>


<TextView

    android:id="@+id/lit_item_currency"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:textSize="15sp"

    android:textColor="#007700"/>

CustomAdapter.java

============开始======


class CustomAdapter extends BaseAdapter {


private ArrayList<Country> _data;

Context _c;


CustomAdapter(ArrayList<Country> data, Context c) {

    _data = data;

    _c = c;

    Log.d("inside customAdapter", "inside customAdapter constructor...");

}


public int getCount() {

    // TODO Auto-generated method stub

    return _data.size();

}


public Object getItem(int position) {

    // TODO Auto-generated method stub

    return _data.get(position);

}


public long getItemId(int position) {

    // TODO Auto-generated method stub

    return position;

}


public View getView(int position, View convertView, ViewGroup parent) {

    // TODO Auto-generated method stub

    View v = convertView;

    if (v == null) {

        LayoutInflater vi = (LayoutInflater) _c

                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        v = vi.inflate(R.layout.entity_country, null);

    }


    TextView lit_item_name = (TextView) v.findViewById(R.id.lit_item_name);

    TextView lit_item_population = (TextView) v.findViewById(R.id.lit_item_population);

    TextView lit_item_capital = (TextView) v.findViewById(R.id.lit_item_capital);

    TextView lit_item_language = (TextView) v.findViewById(R.id.lit_item_language);

    TextView lit_item_currency = (TextView) v.findViewById(R.id.lit_item_currency);

    ImageView list_item_image = (ImageView) v.findViewById(R.id.list_item_image);


    Log.d("tvcredit==>", " "+lit_item_name.getText().toString());




    final Country tpj = _data.get(position);

    lit_item_name.setText(tpj.name+"");

    lit_item_population.setText(tpj.population+"");

    lit_item_capital.setText(tpj.capital+"");

    lit_item_language.setText(tpj.language+"");

    lit_item_currency.setText(tpj.currentcy+"");


    list_item_image.setImageResource(tpj.image);


    LinearLayout ll_parent=(LinearLayout)v.findViewById(R.id.ll_parent);

    ll_parent.setOnClickListener(new View.OnClickListener() {

        @Override

        public void onClick(View v) {

            Toast.makeText(_c,tpj.name+"\n"+tpj.capital,Toast.LENGTH_LONG).show();


            //======== code as per your requirement =========

            //Intent intent=new Intent(_c,TargetActivity.class);

            //intent.putExtra("name",tpj.name+"");

            //intent.putExtra("name",tpj.capital+"");

            //_c.startActivity(intent);

        }

    });

    return v;

}}

===========结束=========


在 MainActivity.java 里面的 onCreate 方法中只需编写


    ListView lvCountries = (ListView)findViewById(R.id.lvCountries);

ArrayList<Country> countries;

countries = new ArrayList<>();

countries.add(new Country("Australia", 100, "Canberra", "English", "Dollars", R.drawable.australia));

countries.add(new Country("China", 5771876, "Beijing", "Chinese", "Renminbi", R.drawable.china));

countries.add(new Country("Germany", 126860301, "Berlin", "German", "Euros", R.drawable.germany));

countries.add(new Country("India", 60550075, "New Delhi", "Indian", "Rupees", R.drawable.india));

countries.add(new Country("UK", 100, "London", "English", "GBP", R.drawable.uk));



CustomAdapter customAdapter=new CustomAdapter(countries,getApplicationContext());

lvCountries.setAdapter(customAdapter);

我已经查过了,肯定对你有帮助。


查看完整回答
反对 回复 2023-09-27
  • 1 回答
  • 0 关注
  • 81 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信