我正在尝试在layout.xml文件上创建线性布局和editText,这是java代码:

private EditText editText(int _intID) {
        EditText editText = (EditText)findViewById(R.id.player_name);
        editText.setId(_intID);
        editText.setHint("Element "+_intID);
        editTextList.add(editText);

        return editText;
    }

    private LinearLayout linearlayout(int _intID)
    {

        LinearLayout LLMain= (LinearLayout)findViewById(R.id.linear_player_base);

        LLMain.setId(_intID);
        LLMain.addView(editText(_intID));

        LLMain.setOrientation(LinearLayout.VERTICAL);
        linearlayoutList.add(LLMain);
        return LLMain;

    }


这是我想用作基础的xml布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:layout_marginBottom="5dp"
    android:layout_weight="1"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:paddingLeft="40dp"
    android:paddingRight="40dp"
    android:id="@+id/linear_player_base">
<EditText
    android:id="@+id/player_name"
    android:background="@drawable/input"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:inputType="text"
    android:imeOptions="actionSend"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:gravity="center_horizontal"
    />
</LinearLayout>


我不明白为什么要这么做:

LinearLayout LLMain= (LinearLayout)findViewById(R.id.linear_player_base);
and then :


LLMain.setId(_intID);

我有此错误:Attempt to invoke virtual method 'void android.widget.LinearLayout.setId(int)' on a null object reference

为什么LLMain为null?

最佳答案

您必须使用布局为自定义视图充气,并在此视图中找到线性布局...
像这样做:

LayoutInflater inflater = getLayoutInflater();
View v = inflater.inflate(R.layout.playerLayout, null);

LinearLayout LLMain= (LinearLayout) v.findViewById(R.id.linear_player_base);

07-24 09:48
查看更多