2013-04-23 6 views
0

В моем приложении relateiveLayout 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

ответ

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