0
我的代码如下:为什么我在ImageView上得到NullPointerException?
activity_for_me.xml
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ListView
android:id="@+id/recco_list"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</ListView>
<ImageView
android:id="@+id/checkin"
android:layout_width="wrap_content"
android:layout_height="80dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="20dp"
android:onClick="ClickCheckIn"
android:src="@drawable/checkin" />
</RelativeLayout>
recco_list.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@layout/nine_patch" >
<ImageView
android:id="@+id/outlet_icon"
android:layout_marginLeft="15dp"
android:layout_height="55dp"
android:layout_width="55dp"
android:layout_marginTop="10dp"/>
<TextView
android:id="@+id/distance"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginLeft="15dp"
android:hint="Distance"
/>
<TextView
android:id="@+id/outlet_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/outlet_icon"
android:layout_toLeftOf="@id/distance"
android:layout_marginLeft = "15dip"
android:hint="outlet"
/>
<TextView
android:id="@+id/reward"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/outlet_name"
android:layout_toRightOf="@id/outlet_icon"
android:layout_toLeftOf="@id/distance"
android:layout_marginLeft = "15dip"
android:layout_marginTop="5dp"
android:textColor="@color/abc_search_url_text_holo"
android:hint="Reward"
/>
<View
android:id="@+id/rule"
android:layout_below="@id/reward"
android:layout_toRightOf="@id/outlet_icon"
android:layout_toLeftOf="@id/distance"
android:layout_width="fill_parent"
android:layout_marginLeft = "15dip"
android:layout_height="1dp"
android:background="#c0c0c0"/>
<ImageView
android:id="@+id/favourite_icon"
android:layout_below="@id/rule"
android:layout_marginLeft="15dp"
android:layout_marginTop="10dp"
android:layout_height="15dp"
android:layout_width="15dp"
android:src="@drawable/heart_empty"/>
<ImageView
android:id="@+id/loc_icon"
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_below="@id/rule"
android:layout_marginLeft = "15dip"
android:layout_marginTop="5dp"
android:layout_toRightOf="@id/outlet_icon"
android:src="@drawable/map_pointer"/>
<TextView
android:id="@+id/locality"
android:layout_toRightOf="@id/loc_icon"
android:layout_toLeftOf="@id/distance"
android:layout_below="@id/rule"
android:layout_marginRight="15dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft = "5dip"
android:layout_marginTop="5dp"
android:hint="Locality"
/>
</RelativeLayout>
Activity.java
public class ForMeActivity extends Fragment {
@SuppressLint("ClickableViewAccessibility")
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
RelativeLayout rootView = (RelativeLayout) inflater.inflate(
R.layout.activity_for_me, container, false);
ImageView favourite_heart = (ImageView) rootView
.findViewById(R.id.favourite_icon);
favourite_heart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Toast.makeText(YourActivityName.this,
// "The favorite list would appear on clicking this icon",
// Toast.LENGTH_LONG).show();
System.out.println("Favourite Icon clicked");
}
});
list = (ListView) rootView.findViewById(R.id.recco_list);
ImageView check_in_img = (ImageView) rootView
.findViewById(R.id.checkin);
ImageView outlet_logo = (ImageView) rootView
.findViewById(R.id.outlet_icon);
final String data = getArguments().getString("data");
ForMeFile = new File(getActivity().getExternalFilesDir(filepath),
filename);
final String cookie = getArguments().getString("cookie");
System.out.print(cookie);
check_in_img.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent in = new Intent(getActivity(), CheckInView.class);
startActivity(in);
System.out.println("Checkin Icon clicked");
}
});
}
我想改变形象的favourit e_iconImageView
当我点击它。但只要我点击图标,我会得到NullPointerException
。什么原因点击check_in_img正在工作,但点击收藏夹是不工作,即使当前布局是包含的内容收藏夹? SO的其他来源说要检查相同。
你没有在onCreateView中创建视图methed在android中有你知道的片段 – 2014-08-29 10:14:57
如果发生崩溃,logcat中会有一个堆栈跟踪。将其包含在您的问题中,以及导致它的代码。 – laalto 2014-08-29 10:15:29
我认为这是行不通的,因为在'activity_for_me.xml'中缺少'R.id.favourite_icon' – Martynas 2014-08-29 10:20:26