2016-06-20 58 views
-3

我想我的片段用setOnClickListener但它不是讓我和說我需要實現的onClick到onClickListener,我有...有人可以請解釋我做錯了什麼?片段不讓我用setOnClickListener

片段代碼:

package layout; 


import android.graphics.drawable.Drawable; 
import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ImageView; 
import android.widget.LinearLayout; 


import test.testing.R; 

/** 
* A simple {@link Fragment} subclass. 
*/ 
public class BlankFragment extends Fragment implements View.OnClickListener{ 


    public BlankFragment() { 
     // Required empty public constructor 
    } 

    ImageView event1 = (ImageView) getView().findViewById(R.id.gray_circle1); 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     // Inflate the layout for this fragment 
     View v = inflater.inflate(R.layout.fragment_blank, container, false); 
     LinearLayout event = (LinearLayout) v.findViewById(R.id.ev1); 
     event.setOnClickListener(new onClickListener() 
     { 
      @Override 
      public void onClick(View v){ 
       event1.setBackgroundResource(R.drawable.colorcircle); 
      } 
     }); 
     return v; 
    } 

} 

片段XML:

<!-- TODO: Update blank fragment layout --> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="20dp" 
     android:id="@+id/ev1" 
     android:onClick="activate" 
     android:orientation="horizontal"> 
     <ImageView 
      android:layout_width="50dp" 
      android:layout_height="50dp" 
      android:id="@+id/gray_circle1" 
      android:background="@drawable/graycircle"/> 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:paddingLeft="20dp" 
      android:gravity="center_vertical" 
      android:textColor="#ffffff" 
      android:text="Event 1"/> 
    </LinearLayout> 
    <!-- Event 2 --> 
    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="20dp" 
     android:orientation="horizontal"> 
     <ImageView 
      android:layout_width="50dp" 
      android:layout_height="50dp" 
      android:background="@drawable/graycircle"/> 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:paddingLeft="20dp" 
      android:gravity="center_vertical" 
      android:textColor="#ffffff" 
      android:text="Event 1"/> 

    </LinearLayout> 
    <!-- Event 3 --> 
    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="20dp" 
     android:orientation="horizontal"> 
     <ImageView 
      android:layout_width="50dp" 
      android:layout_height="50dp" 
      android:background="@drawable/graycircle"/> 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:paddingLeft="20dp" 
      android:gravity="center_vertical" 
      android:textColor="#ffffff" 
      android:text="Event 1"/> 

    </LinearLayout> 


</LinearLayout> 

謝謝。

+1

'onClickListener'需要開始與資本'O' - '新OnClickListener()...'。 –

+0

不要寫眼前這個(新onClickListener() 的而不是寫(新View.onClickListener() – Vickyexpert

+0

爲什麼實現OnClickListener?你從來不會使用它。 – jfxu

回答

1

你正在做以下的事情錯:

event.setOnClickListener(new onClickListener() 
     { 
      @Override 
      public void onClick(View v){ 
       event1.setBackgroundResource(R.drawable.colorcircle); 
      } 
     }); 

的這個你應該這樣做,而不是:

event.setOnClickListener(this); 

,並在您的片段覆蓋的onClick方法:

@Override 
public void onClick(View v){ 
    event1.setBackgroundResource(R.drawable.colorcircle); 
} 
+0

都是同樣的權利? –

+0

@beardedbeast肯定都是相同的,但如果我們已經實現了OnClickListener接口,我們應該使用它。 –

+1

它的工作,謝謝。 – bobnize

0

在除了@ shridutt_kothari的回答,你還可以做以下的事情

event.setOnClickListener(new View.OnClickListener() 
    { 
     @Override 
     public void onClick(View v) { 
       event1.setBackgroundResource(R.drawable.colorcircle); 
     } 
    }); 

請記住,使用此解決方案不要求你的片段類來實現View.OnClickListener