OnClick在RelativeLayout中不起作用

时间:2013-04-23 10:11:43

标签: android

在我的应用程序中,relatediveLayout setOnClickListener没有工作,我无法在这里找出问题所在。 这是我的main.xml

<LinearLayout
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/profile_relative"
            android:layout_marginTop="1dp"
            android:id="@+id/profile_linear">

        <RelativeLayout
                android:id="@+id/profile_postButton"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:layout_marginLeft="1dp">

            <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/profile_post_btn"
                    android:layout_centerInParent="true"
                    android:background="@drawable/post_selector_t"/>

            <TextView
                    android:id="@+id/profile_post_text"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="20dp"
                    android:layout_centerInParent="true"
                    android:text="189"
                    android:textSize="14sp"/>
        </RelativeLayout>

        <RelativeLayout
                android:id="@+id/profile_gradeButton"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:layout_marginLeft="1dp">

            <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/profile_likes_btn"
                    android:layout_centerInParent="true"
                    android:background="@drawable/likes_selector_t"/>

            <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/profile_likes_text"
                    android:layout_marginTop="20dp"
                    android:layout_centerInParent="true"
                    android:text="597"
                    android:textSize="14sp"/>
        </RelativeLayout>

        <RelativeLayout
                android:id="@+id/profile_subscriptionButton"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:layout_marginLeft="1dp">

            <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/profile_signed_on_btn"
                    android:layout_centerInParent="true"
                    android:background="@drawable/signed_on_selector_t"/>

            <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/profile_signed_on_text"
                    android:layout_marginTop="20dp"
                    android:layout_centerInParent="true"
                    android:text="85"
                    android:textSize="14sp"/>
        </RelativeLayout>

        <RelativeLayout
                android:id="@+id/profile_subsribersButton"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:layout_marginLeft="1dp">

            <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/profile_followers_btn"
                    android:layout_centerInParent="true"
                    android:background="@drawable/followers_selector_t"/>

            <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/profile_followers_text"
                    android:layout_marginTop="20dp"
                    android:layout_centerInParent="true"
                    android:text="118"
                    android:textSize="14sp"/>
        </RelativeLayout>
    </LinearLayout>

这是我的片段

    @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            View view = inflater.inflate(R.layout.profile, container, false);

            view.findViewById(R.id.profile_postButton).setOnClickListener(this);
            view.findViewById(R.id.profile_gradeButton).setOnClickListener(this);
            view.findViewById(R.id.profile_subsribersButton).setOnClickListener(this);
            view.findViewById(R.id.profile_subscriptionButton).setOnClickListener(this);
  }  
    @Override
        public void onClick(View v) {
            switch (v.getId()){
                case R.id.profile_postButton:
                    System.out.println("AA");

                    break;
                case R.id.profile_gradeButton:
                    System.out.println("GG");

                    break;
                case R.id.profile_subscriptionButton:
                    System.out.println("EE");

                    break;
                case R.id.profile_subsribersButton:
                    System.out.println("DD");

                    break;
            }
        }

任何想法我想念的地方。

2 个答案:

答案 0 :(得分:1)

我认为您必须将onClick块代码移到onCreate

之外
   @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.profile, container, false);

        view.findViewById(R.id.profile_postButton).setOnClickListener(this);
        view.findViewById(R.id.profile_gradeButton).setOnClickListener(this);
        view.findViewById(R.id.profile_subsribersButton).setOnClickListener(this);
        view.findViewById(R.id.profile_subscriptionButton).setOnClickListener(this);
} 


@Override
public void onClick(View v) {
    switch (v.getId()){
        case R.id.profile_postButton:
            System.out.println("AA");

            break;
        case R.id.profile_gradeButton:
            System.out.println("GG");

            break;
        case R.id.profile_subscriptionButton:
            System.out.println("EE");

            break;
        case R.id.profile_subsribersButton:
            System.out.println("DD");

            break;
    }

答案 1 :(得分:-3)

以XML格式添加:

android:onClick="onClick";

到每个按钮。