我正在尝试在我的片段上使用setOnClickListener,但它并没有让我说我需要实现onClick到onClickListener,我有...有人可以解释一下我做错了吗?
片段代码:
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>
谢谢。
答案 0 :(得分: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);
}
答案 1 :(得分:0)
除了@ shridutt_kothari的回答,您还可以执行以下操作
event.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
event1.setBackgroundResource(R.drawable.colorcircle);
}
});
请注意,使用此解决方案不需要您的片段类实现View.OnClickListener