[英]Android throwing null point exception on uploading a image to web server
[英]ExpandableList in Fragment throwing null point exception
我正在嘗試將一個可擴展列表添加到片段currentnotification.xml中,該片段包含expandablelistview,其中groupview顯示包含簡單文本的currentlistparent.xml文件的內容,而childview顯示包含imageview文本和兩個按鈕的currentlistchild.xml文件的內容。 它在執行時顯示nullpointerexception。 我現在僅嘗試使用fragment和expandable list rite,因此無法捕捉到異常原因。
還請告訴我如何區分按下哪個子視圖按鈕。
CurrentNotification.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent"
android:weightSum="1" android:orientation="vertical">
<ExpandableListView
android:id="@+id/CurrentNotification"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ExpandableListView>
currentlistparent.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="10dp" >
<TextView
android:id="@+id/CurrentParent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="25dp"/>
currentlistchild.xml
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/TableLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Name :" />
<TextView
android:id="@+id/Name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="" />
</TableRow>
<View
android:layout_height="2dp"
android:background="#CCCCCC" />
<TableRow
android:id="@+id/tableRow2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Contact :" />
<TextView
android:id="@+id/Contact"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="" />
</TableRow>
<View
android:layout_height="2dp"
android:background="#CCCCCC" />
<TableRow
android:id="@+id/tableRow3"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Workscope :" />
<TextView
android:id="@+id/Workscope"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="" />
</TableRow>
<View
android:layout_height="2dp"
android:background="#CCCCCC" />
<TableRow
android:id="@+id/tableRow4"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Date :" />
<TextView
android:id="@+id/Date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="" />
</TableRow>
<View
android:layout_height="2dp"
android:background="#CCCCCC" />
<TableRow
android:id="@+id/tableRow5"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Address :" />
<TextView
android:id="@+id/Address"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:text="" />
<ImageView
android:id="@+id/map"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_gravity="center"
android:src="@drawable/folded_globe_contact_maps_plan_map" />
</TableRow>
<View
android:layout_height="2dp"
android:background="#CCCCCC" />
<TableRow
android:id="@+id/tableRow6"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<Button
android:id="@+id/confirm"
android:layout_width="90dp"
android:layout_height="wrap_content"
android:text="Confirm" />
<Button
android:id="@+id/delete"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:layout_column="2"
android:text="Delete" />
</TableRow>
我的currentNotification.java文件
public class CurrentNotification extends Fragment {
ExpandableListView lv;
LayoutInflater inflater;
View view;
Context context;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
this.inflater = inflater;
// TODO Auto-generated method stub
view=inflater.inflate(R.layout.currentnotifications,null);
inflater = LayoutInflater.from(this.context);
lv = (ExpandableListView) view.findViewById(R.id.CurrentNotification);
lv.setAdapter(new ExpandableListAdapter(this.context,inflater));
return view ;
}
class ExpandableListAdapter extends BaseExpandableListAdapter {
Context context;
LayoutInflater layoutInflater;
public ExpandableListAdapter(Context context,LayoutInflater layoutInflater) {
this.context = context;
this.layoutInflater = layoutInflater;
}
@Override
public boolean areAllItemsEnabled() {
return true;
}
@Override
public Object getChild(int groupPosition, int childPosition) {
return null;
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return 0;
}
@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
View v = null;
v = View.inflate(context, R.layout.currentlistchild, null);
TextView name = (TextView) v.findViewById(R.id.Name);
TextView contact = (TextView) v.findViewById(R.id.Contact);
TextView workscope = (TextView) v.findViewById(R.id.Workscope);
TextView date = (TextView) v.findViewById(R.id.Date);
TextView address = (TextView) v.findViewById(R.id.Address);
v.invalidate();
return v;
}
@Override
public int getChildrenCount(int groupPosition) {
return 1;
}
@Override
public long getCombinedChildId(long groupId, long childId) {
return 0;
}
@Override
public long getCombinedGroupId(long groupId) {
return 0;
}
@Override
public Object getGroup(int groupPosition) {
return null;
}
@Override
public int getGroupCount() {
return 4;
}
@Override
public long getGroupId(int groupPosition) {
return 0;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
View v = View.inflate(context, R.layout.currentlistparent, null);
TextView txtView = (TextView) v.findViewById(R.id.CurrentParent);
if(groupPosition == 0) {
txtView.setText("Item 1");
}
if(groupPosition == 1) {
txtView.setText("Item2");
txtView.setTextSize(15f);
}
if(groupPosition == 2) {
txtView.setText("Item3");
txtView.setTextSize(15f);
}
if(groupPosition == 3) {
txtView.setText("Item4");
txtView.setTextSize(15f);
}
v.invalidate();
return v;
}
@Override
public boolean hasStableIds() {
return false;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
@Override
public boolean isEmpty() {
return false;
}
@Override
public void onGroupCollapsed(int groupPosition) {
}
@Override
public void onGroupExpanded(int groupPosition) {
}
@Override
public void registerDataSetObserver(DataSetObserver observer) {
}
@Override
public void unregisterDataSetObserver(DataSetObserver observer) {
}
}
}
錯誤:
05-02 03:28:50.266: E/AndroidRuntime(599): FATAL EXCEPTION: main
05-02 03:28:50.266: E/AndroidRuntime(599): java.lang.NullPointerException
05-02 03:28:50.266: E/AndroidRuntime(599): at android.view.LayoutInflater.from(LayoutInflater.java:171)
05-02 03:28:50.266: E/AndroidRuntime(599): at Tabs.CurrentNotification.onCreateView(CurrentNotification.java:29)
05-02 03:28:50.266: E/AndroidRuntime(599): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1789)
05-02 03:28:50.266: E/AndroidRuntime(599): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:955)
05-02 03:28:50.266: E/AndroidRuntime(599): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1138)
05-02 03:28:50.266: E/AndroidRuntime(599): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:740)
05-02 03:28:50.266: E/AndroidRuntime(599): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1501)
05-02 03:28:50.266: E/AndroidRuntime(599): at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:490)
05-02 03:28:50.266: E/AndroidRuntime(599): at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
05-02 03:28:50.266: E/AndroidRuntime(599): at android.support.v4.view.ViewPager.populate(ViewPager.java:1072)
05-02 03:28:50.266: E/AndroidRuntime(599): at android.support.v4.view.ViewPager.populate(ViewPager.java:918)
05-02 03:28:50.266: E/AndroidRuntime(599): at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1440)
05-02 03:28:50.266: E/AndroidRuntime(599): at android.view.View.measure(View.java:8313)
05-02 03:28:50.266: E/AndroidRuntime(599): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
05-02 03:28:50.266: E/AndroidRuntime(599): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017)
05-02 03:28:50.266: E/AndroidRuntime(599): at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:701)
05-02 03:28:50.266: E/AndroidRuntime(599): at android.widget.LinearLayout.onMeasure(LinearLayout.java:311)
05-02 03:28:50.266: E/AndroidRuntime(599): at android.view.View.measure(View.java:8313)
05-02 03:28:50.266: E/AndroidRuntime(599): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
05-02 03:28:50.266: E/AndroidRuntime(599): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017)
05-02 03:28:50.266: E/AndroidRuntime(599): at android.widget.LinearLayout.measureVertical(LinearLayout.java:386)
05-02 03:28:50.266: E/AndroidRuntime(599): at android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
05-02 03:28:50.266: E/AndroidRuntime(599): at android.view.View.measure(View.java:8313)
05-02 03:28:50.266: E/AndroidRuntime(599): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
05-02 03:28:50.266: E/AndroidRuntime(599): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
05-02 03:28:50.266: E/AndroidRuntime(599): at android.view.View.measure(View.java:8313)
05-02 03:28:50.266: E/AndroidRuntime(599): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
05-02 03:28:50.266: E/AndroidRuntime(599): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
05-02 03:28:50.266: E/AndroidRuntime(599): at android.view.View.measure(View.java:8313)
05-02 03:28:50.266: E/AndroidRuntime(599): at android.view.ViewRoot.performTraversals(ViewRoot.java:839)
05-02 03:28:50.266: E/AndroidRuntime(599): at android.view.ViewRoot.handleMessage(ViewRoot.java:1859)
05-02 03:28:50.266: E/AndroidRuntime(599): at android.os.Handler.dispatchMessage(Handler.java:99)
05-02 03:28:50.266: E/AndroidRuntime(599): at android.os.Looper.loop(Looper.java:123)
05-02 03:28:50.266: E/AndroidRuntime(599): at android.app.ActivityThread.main(ActivityThread.java:3683)
05-02 03:28:50.266: E/AndroidRuntime(599): at java.lang.reflect.Method.invokeNative(Native Method)
05-02 03:28:50.266: E/AndroidRuntime(599): at java.lang.reflect.Method.invoke(Method.java:507)
05-02 03:28:50.266: E/AndroidRuntime(599): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
05-02 03:28:50.266: E/AndroidRuntime(599): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
05-02 03:28:50.266: E/AndroidRuntime(599): at dalvik.system.NativeStart.main(Native Method)
一旦將充氣機從片段的方法(onCreateView())變成了充氣機,就不需要在所有inflater = LayoutInflater.from(this.context);
上拋出錯誤的行inflater = LayoutInflater.from(this.context);
因為它是用於創建新的LayoutInflater並已經擁有一個。 嘗試刪除此行。 其他一切看起來都還可以。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.