【问题标题】:List of objects with corresponding controls (views) in AndroidAndroid中具有相应控件(视图)的对象列表
【发布时间】:2014-05-21 16:48:00
【问题描述】:

我在理解一个概念时遇到了问题。我正在制作一个应用程序,我将在其中拥有一组自定义对象。然后这些对象应该在布局中表示。

在此简化以说明重点:

假设我有一个 MyProducts 列表:

public class MyProduct {
    private string m_name;
    private float m_price;
    private int m_amount;

    public string getName() {
        return name;
    }
    public void setName(string name) {
        m_name = name;
    }

    etc...
}

然后我想要一个显示这些信息的复合视图(?) - 并且还允许我设置其中的一些。就像一个带有名称、价格和金额等的 TextView 的框。

因此,当其中一个控件发生更改时,列表中的对象应该被更新。我该怎么做呢?

我的自发想法是直接在自定义视图中实现所有逻辑。让 MyProduct 扩展让我们说 LinearLayout。然后我想要的对象的所有逻辑都直接在那里实现。并且视图将实现 View.OnClickListener 并处理它的所有更改。

类似这样的:

public class MyProduct extends LinearLayout {
    private TextView m_nameTextView;
    private EditText m_priceEditText;
    private Spinner m_amountSpinner;

    private string m_name;
    private float m_price;
    private int m_amount;

    public ExerciseView(Context context, AttributeSet attrs) {
        super(context, attrs); 

        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        inflater.inflate(R.layout.MyProduct, this);

        m_nameTextView = (TextView) findViewById(R.id.name);
        m_priceEditText = (EditText) findViewById(R.id.price);
        m_amountSpinner = (Spinner) findViewById(R.id.amount);

    }

    public string getName() {
        return name;
    }
    public void setName(string name) {
        m_name = name;
    }

    etc..
}

那是犹太洁食吗? 我想错了吗?

【问题讨论】:

    标签: java android xml user-interface mobile


    【解决方案1】:

    您正在寻找的功能是带有自定义适配器的 ListView。

    这是一个很好的教程:http://www.vogella.com/tutorials/AndroidListView/article.html

    【讨论】:

    • 假设我想让每个项目都有一堆控件。我想直接与相应的数据模型进行交互。这个解决方案可能/简单吗?
    • 是的,这正是它的用途。
    • 谢谢。实际上,我最终构建了一个复杂的复合视图类。它有点接近我需要的东西。无论如何都将其标记为已接受的答案,因为这可能是我最初提出问题的任何人都需要的。
    猜你喜欢
    • 2012-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-27
    • 1970-01-01
    • 2021-12-16
    相关资源
    最近更新 更多