FindViewbyId始终在Fragment中返回Null

cod*_*der 1 android android-fragments android-activity findviewbyid

我有一个xml文件,如下所示:

One.xml

<LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:background="@drawable/additemsbackground"
        android:orientation="horizontal"
        android:layout_marginRight="20dp"
        android:layout_marginLeft="20dp">
  <ImageView
            android:id="@+id/btnaddtxt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right|center_vertical"
            android:layout_marginRight="10dp"
            android:adjustViewBounds="true"
            android:src="@drawable/add" />
    </LinearLayout>
Run Code Online (Sandbox Code Playgroud)

这是我的MainFragment:

  @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
       LayoutInflater layoutInflater = LayoutInflater.from(MainActivity.this);
       View myView = layoutInflater.inflate(R.layout.One,
            null);
       ImageView btnadd=(ImageView)myView.findViewById(R.id.btnaddtxt);
       btnadd.setOnClickListener(
        new View.OnClickListener() {
            @Override
            public void onClick(View arg0) {
                    Toast.makeText(getApplicationContext(),
                              "Clicked Add Text Button" , Toast.LENGTH_LONG)
                              .show();
                }
            });
  }
Run Code Online (Sandbox Code Playgroud)

当我试图获得ImageView我所显示的内容时,MainFragment它总是返回null.

谁能说我这样做的正确方法是什么?

Vip*_*mar 5

使用片段时,在onCreateView(...)中初始化视图,而不是在onCreate(...)中.像这样的东西

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.delivery_boys, container,
                false);
        ImageView btnadd=(ImageView)rootView .findViewById(R.id.btnaddtxt);

        return rootView;
    }
Run Code Online (Sandbox Code Playgroud)