用数组填充视图

时间:2018-10-19 11:05:14

标签: android listview android-activity

我是Android新手。 我在我的书中找到了这段代码。它没有正确解释 我创建了Drink Java类 然后我在活动中使用了Drinks.java。单击时,它将使用意图将单击数组的ID传递给另一个活动。 现在在其他活动中,我想显示饮料的名称,图像以及我们存储在数组中的描述 我知道我们已经将数组ID存储在Drinks类对象中 但是为什么我们要使用getter方法来获取名称,描述和图像。 它们不与数组链接吗? 他们里面没有代码? 然后实际发生了什么

有人可以解释吗?

Class Drinks { private String name ; private String description ; private int rid ; public static final Drinks[] drinks = { new Drinks("Latte", "A couple of espresso shots with steamed milk", R.drawable.latte), new Drinks("Cappuccino", "Espresso, hot milk, and a steamed milk foam", R.drawable.cappuccino), new Drinks("Filter", "Highest quality beans roasted and brewed fresh", R.drawable.filter) }; public Drinks(String name, String description, int rid) { this.name = name; this.description = description; this.rid = rid; } public String getName() { return name; } public String getDescription() { return description; } public int getRid() { return rid; } } ----------------------------------------- 类代码

    listDrinks = findViewById(R.id.listDrinks);



    ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1 ,Drinks.drinks);
    listDrinks.setAdapter(adapter);
    listDrinks.setOnItemClickListener(new AdapterView.OnItemClickListener()
    {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            Intent intent = new Intent(Main2Activity.this , Main3Activity.class);
            intent.putExtra("id",id);

            startActivity(intent);

        }
    });

我在使用酒水[]并传递其ID的活动代码

  textView = findViewById(R.id.textname);
    text_description = findViewById(R.id.text_description);
    imageView = findViewById(R.id.photo);


    Intent intent= getIntent();
 int drinkId = Integer.parseInt(intent.getStringExtra("id"));
    Drinks d = Drinks.drinks[drinkId];


    textView.setText(d.getName());

    text_description.setText(d.getDescription());


    imageView.setImageResource(d.getRid())

;

我要传递数组ID并使用getter方法设置名称描述和要显示的图像的另一项活动

if authenticated:
    redirect to /home
else (not authenticated):
    redirect to the url that corresponds to AdminController@login, flashing an error message to the session

1 个答案:

答案 0 :(得分:0)

您正在Drinks []饮料中创建新对象,这些对象将调用该类的构造函数并设置私有的名称,描述和rid。因此,您需要使用getter函数来访问该特定对象的rid,名称和描述。您仅在第二个活动中解析要访问的对象的ID。