静态和动态文本视图在android中同时添加

时间:2013-08-20 06:04:35

标签: android dynamic static android-linearlayout

我在android中同时添加了一个静态和动态文本视图。但是代码中有一些错误..它只是添加了数组的最后一个元素。可以帮我解决一下吗?

dynamicInput = (String[]) data;
        runOnUiThread(new Runnable() {
            public void run() {

                String[] string = { "Customer Mobile No :", "Nick Name :",
                        "Amount :", "Due date :" };
                LinearLayout findViewById = (LinearLayout) findViewById(R.id.dynamicInputbiller);
                TextView dynamicText = new TextView(PayBiller_Activity.this);
                TextView staticText = new TextView(PayBiller_Activity.this);
                for (int i = 0; i < string.length; i++) {

                    staticText.setText(string[i]);

                    staticText.setTextColor(Color.BLACK);
                    staticText.setTextSize(TypedValue.COMPLEX_UNIT_SP, 17);

                    dynamicText.setText(dynamicInput[i]);

                    dynamicText.setTextColor(Color.GRAY);
                    dynamicText.setTextSize(TypedValue.COMPLEX_UNIT_SP, 13);
                }
                findViewById.addView(staticText);
                findViewById.addView(dynamicText);

            }
        });

4 个答案:

答案 0 :(得分:0)

试试这个:

dynamicInput = (String[]) data;
        runOnUiThread(new Runnable() {
            public void run() {

                String[] string = { "Customer Mobile No :", "Nick Name :",
                        "Amount :", "Due date :" };
                LinearLayout findViewById = (LinearLayout) findViewById(R.id.dynamicInputbiller);

                for (int i = 0; i < string.length; i++) {
                    TextView dynamicText = new TextView(PayBiller_Activity.this);
                    TextView staticText = new TextView(PayBiller_Activity.this);
                    staticText.setText(string[i]);

                    staticText.setTextColor(Color.BLACK);
                    staticText.setTextSize(TypedValue.COMPLEX_UNIT_SP, 17);

                   dynamicText.setText(dynamicInput[i]);

                    dynamicText.setTextColor(Color.GRAY);
                    dynamicText.setTextSize(TypedValue.COMPLEX_UNIT_SP, 13);

                    findViewById.addView(staticText);
                    findViewById.addView(dynamicText);
                }


            }
        });

答案 1 :(得分:0)

把它放在你的for循环中。

findViewById.addView(staticText);
findViewById.addView(dynamicText);

答案 2 :(得分:0)

如果要将所有数组元素设置为textViews,则必须在每次迭代时附加它。现在你没有这样做。因此,您只获得最后一个数组元素。

注意:还要确保您的字符串Array dynamicInput和staticText的字符串数组具有相同数量的元素,这样您就不会将索引排除在绑定异常之外,或者在将其分配给TextView时可能会遗漏某些元素。

我给你的“字符串”数组提供了一些其他名称。它的“staticStringArray。”

dynamicInput = (String[]) data;
    runOnUiThread(new Runnable() {
        public void run() {

            String[] staticStringArray= { "Customer Mobile No :", "Nick Name :","Amount :", "Due date :" };
            LinearLayout findViewById = (LinearLayout) findViewById(R.id.dynamicInputbiller);
            TextView dynamicText = new TextView(PayBiller_Activity.this);
            TextView staticText = new TextView(PayBiller_Activity.this);
            for (int i = 0; i < staticStringArray.length; i++) {

                //append each element of the array on each iteration. 
                staticText.setText(staticText.getText().toString() + staticStringArray[i] + "\n");

                staticText.setTextColor(Color.BLACK);
                staticText.setTextSize(TypedValue.COMPLEX_UNIT_SP, 17);

                //append each element of the array on each iteration. 
                dynamicText.setText(dynamicText.getText().toString() + dynamicInput[i] + "\n");

                dynamicText.setTextColor(Color.GRAY);
                dynamicText.setTextSize(TypedValue.COMPLEX_UNIT_SP, 13);
            }
            findViewById.addView(staticText);
            findViewById.addView(dynamicText);

        }
    });

答案 3 :(得分:0)

实际上问题是不同的。你正在做的是你在一个TextView中添加一个数组的元素。当你在循环中执行它时,它只接受最后一个元素并在Text视图中获取它。做一件事就是采用父布局的ID(线性/相对)。

在循环中

创建一个Textview并为其添加一个值(你的方式就像setText,setTextSize等)。在循环中将其添加到其父布局。

这可能会对你有帮助。