Android列表分配

时间:2016-08-15 20:01:55

标签: java android arrays list listview

我有一些文本视图,我添加到列表对象,我想以编程方式初始化它们。我该怎么做呢?列表是最佳对象

我的代码到目前为止。查看添加到列表中的对象。

mTextViewList = new ArrayList<TextView>();
        mTextViewList.addAll(Arrays.asList(mTextViewA, mTextViewB, mTextViewC, mTextViewD ));
        String TAG_ID= "id";

这就是我想要做的事情

//Single line assignment works.

 mTextViewA = (TextView) findViewById(getResources().getIdentifier("textViewA",TAG_ID, getPackageName()));
 mTextViewB = (TextView) findViewById(getResources().getIdentifier("textViewB",TAG_ID, getPackageName()));

当对象添加到列表并在循环中使用

时,这不起作用
//Forloop doesnt work
        for (int i=0; i<mTextViewList.size(); i++) {

            //System.out.println(list.get(i));
            mTextViewList.get(i) = (TextView) findViewById(getResources().getIdentifier("textViewName",TAG_ID, getPackageName()));
        }

2 个答案:

答案 0 :(得分:0)

以下更有意义:

mTextViewList = new ArrayList<>();
for (int i = 0; i < mTextViewList.size(); i++) {
    TextView textView = (TextView) findViewById(getResources().getIdentifier("textViewName", TAG_ID, getPackageName()));
    mTextViewList.add(textView);
}

答案 1 :(得分:0)

看起来您正在尝试将项目列表设置为TextView,其名称以连续字母结尾。我们试试这个:

mTextViewList = new ArrayList<>();
int viewCount = ???; // not sure how many elements you have
for (int i = 0; i < viewCount; i++) {
    String name = "textView" + (char)('A' + i);
    TextView textView = (TextView) findViewById(getResources().getIdentifier(name, TAG_ID, getPackageName()));
    mTextViewList.add(textView);
}