为什么我不能给布局充气?

时间:2014-09-11 12:02:43

标签: android android-layout

我对android很新我有这个MainActivity:

    static TableRow row;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        for (int i = 0; i < 10; i++) {
            View v = getLayoutInflater().inflate(R.layout.row, null);
            TextView text = (TextView) v.findViewById(R.id.myText);
            text.setText("Test");
        }
    }

我想要添加一个行表十次,每个都有一个带有Test单词的文本视图,但我希望这在语法上不使用任何现成的布局,因为在高级情况下我可以从xml读取我不知道我需要的行数。 布局row包含:

<?xml version="1.0" encoding="utf-8"?>
<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/myRow"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:weightSum="1" >

    <TextView
        android:id="@+id/myText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</TableRow>

activity_main.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.bahisdoktoru.MainActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

</RelativeLayout>

当我运行应用程序时,我没有得到任何东西只是Hello world文本(activity_main.xml工作)但是它们内部的行和文本没有显示(我认为row.xml不起作用)。 我希望你能告诉我如果我错过了什么或者如果我写错了怎么能显示我想要的语法行?

1 个答案:

答案 0 :(得分:0)

use below code instead of yours :-

  for (int i = 0; i < 10; i++) {   
    LayoutInflater inflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                View v = inflater.inflate(R.layout.row, null);
                TextView text = (TextView) v.findViewById(R.id.myText);
                text.setText("Test");
            }