当调用intent时,应用程序崩溃 [英] When intent is call then application is crash
本文介绍了当调用intent时,应用程序崩溃的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Logcat
Logcat
package info.androidhive.slidingmenu;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import android.annotation.SuppressLint;
import android.app.Fragment;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
//import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
// Inbox Message Fragment
public class HomeFragment extends Fragment {
ListView listview_inbox;
CheckBox checkbox;
ArrayList<Message> sms;
ArrayList<String> inboxlist;
public HomeFragment(){}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_home, container, false);
listview_inbox=(ListView) rootView.findViewById(R.id.listview1);
checkbox=(CheckBox)rootView.findViewById(R.id.checkBox);
sms = new ArrayList<Message>();
inboxlist = new ArrayList<String>();
// On this function application crashes.
populateMessageList();
// ArrayAdapter<String> inboxadapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, inboxlist);
// listview_inbox.setAdapter(inboxadapter);
return rootView;
}
public void populateMessageList() {
fetchInboxMessages();
// Here occur the exception.
if (fetchInboxMessages() != null) {
listview_inbox.setAdapter(new datalist(getActivity(),sms));
// to handle click event on listView item
listview_inbox.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
public void onItemClick(AdapterView<?> arg0, View v,int position, long arg3)
{
// when user clicks on ListView Item , onItemClick is called
// with position and View of the item which is clicked
// we can use the position parameter to get index of clicked item
TextView textViewSMSSender=(TextView)v.findViewById(R.id.lblNumber);
TextView textViewSMSBody=(TextView)v.findViewById(R.id.lblMsg);
TextView textViewSMSDate=(TextView)v.findViewById(R.id.smsdate);
textViewSMSSender.getText().toString();
textViewSMSBody.getText().toString();
textViewSMSDate.getText().toString();
}
});
} else {
Toast.makeText(getActivity(), "No SMS", Toast.LENGTH_LONG).show();
}
}
/*
* Using this method to fetch the inbox messages
*/
public ArrayList<Message> fetchInboxMessages() {
//////////////////////
Uri muriSms = Uri.parse("content://sms/sent");
Cursor mcursor = getActivity().getContentResolver().query(muriSms,
new String[]{"_id", "address", "date", "body"}, null, null,null);
if (mcursor != null) {
mcursor.moveToFirst();
}
if (mcursor != null) {
while (mcursor.moveToNext()) {
Message mMessage = new Message();
mMessage.setmAddress(mcursor.getString(mcursor.getColumnIndex("address")));
mMessage.setmBody(mcursor.getString(mcursor.getColumnIndex("body")));
mMessage.setmDate(mcursor.getString(mcursor.getColumnIndex("date")));
sms.add(mMessage);
}
}
return sms;
}
/*
* Set the Adapter for Listview
*
*/
class datalist extends BaseAdapter {
Context context;
ArrayList<Message> arrayListsms;
public datalist(Context context,ArrayList<Message> arrayListsms) {
// TODO Auto-generated constructor stub
this.context=context;
this.arrayListsms=arrayListsms;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return sms.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@SuppressLint("SimpleDateFormat")
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
LayoutInflater inflator = getActivity().getLayoutInflater();
View row;
row = inflator.inflate(R.layout.fragment_home, parent, false);
// ImageView img1 = (ImageView) row.findViewById(R.id.imageView1);
CheckBox checkBox=(CheckBox)row.findViewById(R.id.checkBox);
final TextView txt1 = (TextView) row.findViewById(R.id.lblMsg);
final TextView txt2 = (TextView) row.findViewById(R.id.lblNumber);
final TextView txt3 = (TextView) row.findViewById(R.id.smsdate);
Long timestamp = Long.parseLong(sms.get(position).getmDate());
Calendar mcalendar = Calendar.getInstance();
mcalendar.setTimeInMillis(timestamp);
SimpleDateFormat mformatter = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss");
txt1.setText(sms.get(position).getmBody());
txt2.setText(sms.get(position).getmAddress());
//+"\n"+mformatter.format(mcalendar.getTime())
txt3.setText(mformatter.format(mcalendar.getTime()));
// //"Sent by" +
//
// if(checkBox.isChecked()) {
// Toast.makeText(context,"Hel0"+arrayListsms.get(position).getmBody(),Toast.LENGTH_LONG).show();
// }
final String msgBody=txt1.getText().toString();
final String msgAddr=txt2.getText().toString();
final String msgDate=txt3.getText().toString();
checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
// selectedStrings.add(tv.getText().toString());
Toast.makeText(context,""+msgBody,Toast.LENGTH_LONG).show();
System.out.println("Body" + msgBody);
System.out.println("Address" +msgAddr);
System.out.println("Date" + msgDate);
inboxlist.add(msgBody+msgAddr+msgDate);
// inboxlist.add(msgAddr);
// inboxlist.add(msgDate);
arrayListsms.remove(position);
notifyDataSetChanged();
}else{
// selectedStrings.remove(tv.getText().toString());
}
}
});
return row;
}
}
}
01-28 17:42:55.055: D/AndroidRuntime(799): Shutting down VM
01-28 17:42:55.055: W/dalvikvm(799): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
01-28 17:42:55.195: E/AndroidRuntime(799): FATAL EXCEPTION: main
01-28 17:42:55.195: E/AndroidRuntime(799): java.lang.RuntimeException: Unable to start activity ComponentInfo{info.androidhive.slidingmenu/info.androidhive.slidingmenu.MainActivity}: java.lang.NullPointerException
01-28 17:42:55.195: E/AndroidRuntime(799): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
01-28 17:42:55.195: E/AndroidRuntime(799): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
01-28 17:42:55.195: E/AndroidRuntime(799): at android.app.ActivityThread.access$600(ActivityThread.java:141)
01-28 17:42:55.195: E/AndroidRuntime(799): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
01-28 17:42:55.195: E/AndroidRuntime(799): at android.os.Handler.dispatchMessage(Handler.java:99)
01-28 17:42:55.195: E/AndroidRuntime(799): at android.os.Looper.loop(Looper.java:137)
01-28 17:42:55.195: E/AndroidRuntime(799): at android.app.ActivityThread.main(ActivityThread.java:5041)
01-28 17:42:55.195: E/AndroidRuntime(799): at java.lang.reflect.Method.invokeNative(Native Method)
01-28 17:42:55.195: E/AndroidRuntime(799): at java.lang.reflect.Method.invoke(Method.java:511)
01-28 17:42:55.195: E/AndroidRuntime(799): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
01-28 17:42:55.195: E/AndroidRuntime(799): at dalvik.system.NativeStart.main(Native Method)
01-28 17:42:55.195: E/AndroidRuntime(799): Caused by: java.lang.NullPointerException
01-28 17:42:55.195: E/AndroidRuntime(799): at info.androidhive.slidingmenu.HomeFragment.populateMessageList(HomeFragment.java:57)
01-28 17:42:55.195: E/AndroidRuntime(799): at info.androidhive.slidingmenu.HomeFragment.onCreateView(HomeFragment.java:47)
01-28 17:42:55.195: E/AndroidRuntime(799): at android.app.Fragment.performCreateView(Fragment.java:1695)
01-28 17:42:55.195: E/AndroidRuntime(799): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:885)
01-28 17:42:55.195: E/AndroidRuntime(799): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1057)
01-28 17:42:55.195: E/AndroidRuntime(799): at android.app.BackStackRecord.run(BackStackRecord.java:682)
01-28 17:42:55.195: E/AndroidRuntime(799): at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1435)
01-28 17:42:55.195: E/AndroidRuntime(799): at android.app.Activity.performStart(Activity.java:5113)
01-28 17:42:55.195: E/AndroidRuntime(799): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2153)
01-28 17:42:55.195: E/AndroidRuntime(799): ... 11 more
推荐答案
600(ActivityThread.java:141)
01-28 17 :42:55.195:E / AndroidRuntime(799):在android.app.ActivityThread
600(ActivityThread.java:141) 01-28 17:42:55.195: E/AndroidRuntime(799): at android.app.ActivityThread
H.handleMessage(ActivityThread.java:1234)
01-28 17:42: 55.195:E / AndroidRuntime(799):在android.os.Handler.dispatchMessage(Handler.java:99)
01-28 17:42:55.195:E / AndroidRuntime(799):在android.os.Looper .loop(Looper.java:137)
01-28 17:42:55.195:E / AndroidRuntime(799):在android.app.ActivityThread.main(ActivityThread.java:5041)
01- 28 17:42:55.195:E / AndroidRuntime(799):at java.lang.reflect.Method.invokeNative(Native Method)
01-28 17:42:55.195:E / AndroidRuntime(799):at java .lang.reflect.Method.invoke(Method.java:511)
01-28 17:42:55.195:E / AndroidRuntime(799):at com.android.internal.os.ZygoteInit
H.handleMessage(ActivityThread.java:1234) 01-28 17:42:55.195: E/AndroidRuntime(799): at android.os.Handler.dispatchMessage(Handler.java:99) 01-28 17:42:55.195: E/AndroidRuntime(799): at android.os.Looper.loop(Looper.java:137) 01-28 17:42:55.195: E/AndroidRuntime(799): at android.app.ActivityThread.main(ActivityThread.java:5041) 01-28 17:42:55.195: E/AndroidRuntime(799): at java.lang.reflect.Method.invokeNative(Native Method) 01-28 17:42:55.195: E/AndroidRuntime(799): at java.lang.reflect.Method.invoke(Method.java:511) 01-28 17:42:55.195: E/AndroidRuntime(799): at com.android.internal.os.ZygoteInit
MethodAndArgsCaller.run(ZygoteInit.java:793)
01-28 17:42:55.195:E / AndroidRuntime(799):at dalvik.system.Nat iveStart.main(Native Method)
01-28 17:42:55.195:E / AndroidRuntime(799):引起:java.lang.NullPointerException
01-28 17:42:55.195:E / AndroidRuntime(799):在info.androidhive.slidingmenu.HomeFragment.populateMessageList(HomeFragment.java:57)
01-28 17:42:55.195:E / AndroidRuntime(799):at info.androidhive.slidingmenu.HomeFragment .onCreateView(HomeFragment.java:47)
01-28 17:42:55.195:E / AndroidRuntime(799):在android.app.Fragment.performCreateView(Fragment.java:1695)
01- 28 17:42:55.195:E / AndroidRuntime(799):在android.app.FragmentManagerImpl.moveToState(FragmentManager.java:885)
01-28 17:42:55.195:E / AndroidRuntime(799):at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1057)
01-28 17:42:55.195:E / AndroidRuntime(799):at android.app.BackStackRecord.run(BackStackRecord.java:682)
01-28 17:42:55.195:E / AndroidRuntime(799):在android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1435)
01-28 17:42:55。 195:E / AndroidRuntime(799):在android.app.Activity.performStart(Activity.java:5113)
01-28 17:42:55.195:E / AndroidRuntime(799):at android.app.ActivityThread .performLaunchActivity(ActivityThread.java:2153)
01-28 17:42:55.195:E / AndroidRuntime(799):... 11 more
MethodAndArgsCaller.run(ZygoteInit.java:793) 01-28 17:42:55.195: E/AndroidRuntime(799): at dalvik.system.NativeStart.main(Native Method) 01-28 17:42:55.195: E/AndroidRuntime(799): Caused by: java.lang.NullPointerException 01-28 17:42:55.195: E/AndroidRuntime(799): at info.androidhive.slidingmenu.HomeFragment.populateMessageList(HomeFragment.java:57) 01-28 17:42:55.195: E/AndroidRuntime(799): at info.androidhive.slidingmenu.HomeFragment.onCreateView(HomeFragment.java:47) 01-28 17:42:55.195: E/AndroidRuntime(799): at android.app.Fragment.performCreateView(Fragment.java:1695) 01-28 17:42:55.195: E/AndroidRuntime(799): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:885) 01-28 17:42:55.195: E/AndroidRuntime(799): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1057) 01-28 17:42:55.195: E/AndroidRuntime(799): at android.app.BackStackRecord.run(BackStackRecord.java:682) 01-28 17:42:55.195: E/AndroidRuntime(799): at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1435) 01-28 17:42:55.195: E/AndroidRuntime(799): at android.app.Activity.performStart(Activity.java:5113) 01-28 17:42:55.195: E/AndroidRuntime(799): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2153) 01-28 17:42:55.195: E/AndroidRuntime(799): ... 11 more
这篇关于当调用intent时,应用程序崩溃的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文