2013-04-23 69 views
0

在我的应用程序中,linkediveLayout setOnClickListener不起作用我找不到这里有什么问题。 这是我的main.xmlOnClick在RelativeLayout中不起作用

<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

看来你的onClick是您的onCreateView内部实现。你能纠正吗? – Blackbelt 2013-04-23 10:15:02

回答

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; 
    } 
-3

添加在XML:

android:onClick="onClick"; 

每一个按键。

+2

我认为情况并非如此 – stinepike 2013-04-23 10:16:24