【发布时间】:2011-10-06 11:02:41
【问题描述】:
我一直在尝试许多解决方案和代码组合,但我总是让我的进程在应用程序中被强制关闭。你有什么建议吗?
public class CompaniesViewActivity extends ListActivity {
ArrayList<String> _listItems = new ArrayList<String>(); // Stores data from Company object
ArrayList<String> _companyNames = new ArrayList<String>();
ArrayAdapter<String> _adapter;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.companiesview_layout); // Setting the appropriate layout
GlobalState globalState = (GlobalState)getApplicationContext(); // Setting the global vars
ArrayList<Company> companies = globalState.loadCompanies(); // Retrieving the companies list
// that was created during the
// first view
_adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, _listItems);
// Constructing an ArrayAdapter in order to create a dynamic ListView
// associated with the _listItems Dynamic String Array List
setListAdapter(_adapter); // Setting the adapter
addItems(companies); // Calls the method to add the items in the ListView
}
// Adding items to the ListView dynamically for all the companies in the retrieved companies list
public void addItems(ArrayList<Company> companies) {
for (int i=0; i<companies.size(); i++) {
_listItems.add(companies.get(i).getName() + "\n" + "ΑΦΜ: " + companies.get(i).getVat());
_companyNames.add(companies.get(i).getName());
_adapter.notifyDataSetChanged(); // Refreshing the View with the data filled
}
}
public void onListItemClick(ListView l, View v, int position, long id) {
//String companyName = _companyNames.get(position);
Intent intent = new Intent();
intent.setClass(CompaniesViewActivity.this, CompanyTabViewActivity.class);
startActivity(intent);
//myIntent.putExtra("companyName", companyName);
}
}
Logcat:
10-06 11:13:34.549: ERROR/AndroidRuntime(1569): FATAL EXCEPTION: main
10-06 11:13:34.549: ERROR/AndroidRuntime(1569): java.lang.RuntimeException: Unable to start activity ComponentInfo{gr.sigmasolutions/gr.sigmasolutions.CompanyTabViewActivity}: java.lang.RuntimeException: Unable to start activity ComponentInfo{gr.sigmasolutions/gr.sigmasolutions.CompanyInfoViewActivity}: java.lang.NullPointerException
10-06 11:13:34.549: ERROR/AndroidRuntime(1569): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1622)
10-06 11:13:34.549: ERROR/AndroidRuntime(1569): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1638)
10-06 11:13:34.549: ERROR/AndroidRuntime(1569): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
10-06 11:13:34.549: ERROR/AndroidRuntime(1569): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:928)
10-06 11:13:34.549: ERROR/AndroidRuntime(1569): at android.os.Handler.dispatchMessage(Handler.java:99)
10-06 11:13:34.549: ERROR/AndroidRuntime(1569): at android.os.Looper.loop(Looper.java:123)
10-06 11:13:34.549: ERROR/AndroidRuntime(1569): at android.app.ActivityThread.main(ActivityThread.java:3647)
10-06 11:13:34.549: ERROR/AndroidRuntime(1569): at java.lang.reflect.Method.invokeNative(Native Method)
10-06 11:13:34.549: ERROR/AndroidRuntime(1569): at java.lang.reflect.Method.invoke(Method.java:507)
10-06 11:13:34.549: ERROR/AndroidRuntime(1569): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
10-06 11:13:34.549: ERROR/AndroidRuntime(1569): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
10-06 11:13:34.549: ERROR/AndroidRuntime(1569): at dalvik.system.NativeStart.main(Native Method)
10-06 11:13:34.549: ERROR/AndroidRuntime(1569): Caused by: java.lang.RuntimeException: Unable to start activity ComponentInfo{gr.sigmasolutions/gr.sigmasolutions.CompanyInfoViewActivity}: java.lang.NullPointerException
10-06 11:13:34.549: ERROR/AndroidRuntime(1569): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1622)
10-06 11:13:34.549: ERROR/AndroidRuntime(1569): at android.app.ActivityThread.startActivityNow(ActivityThread.java:1462)
10-06 11:13:34.549: ERROR/AndroidRuntime(1569): at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127)
10-06 11:13:34.549: ERROR/AndroidRuntime(1569): at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339)
10-06 11:13:34.549: ERROR/AndroidRuntime(1569): at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:654)
10-06 11:13:34.549: ERROR/AndroidRuntime(1569): at android.widget.TabHost.setCurrentTab(TabHost.java:326)
10-06 11:13:34.549: ERROR/AndroidRuntime(1569): at android.widget.TabHost.addTab(TabHost.java:216)
10-06 11:13:34.549: ERROR/AndroidRuntime(1569): at gr.sigmasolutions.CompanyTabViewActivity.onCreate(CompanyTabViewActivity.java:36)
10-06 11:13:34.549: ERROR/AndroidRuntime(1569): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
10-06 11:13:34.549: ERROR/AndroidRuntime(1569): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1586)
10-06 11:13:34.549: ERROR/AndroidRuntime(1569): ... 11 more
10-06 11:13:34.549: ERROR/AndroidRuntime(1569): Caused by: java.lang.NullPointerException
10-06 11:13:34.549: ERROR/AndroidRuntime(1569): at gr.sigmasolutions.CompanyInfoViewActivity.showCompanyInfoServices(CompanyInfoViewActivity.java:54)
10-06 11:13:34.549: ERROR/AndroidRuntime(1569): at gr.sigmasolutions.CompanyInfoViewActivity.onCreate(CompanyInfoViewActivity.java:32)
10-06 11:13:34.549: ERROR/AndroidRuntime(1569): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
10-06 11:13:34.549: ERROR/AndroidRuntime(1569): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1586)
10-06 11:13:34.549: ERROR/AndroidRuntime(1569): ... 20 more
【问题讨论】:
-
您在 LogCat 中遇到什么错误?
-
强制关闭在哪里?在此处粘贴您的错误日志。
-
Intent intent = new Intent(CurrentActivity.this, ActivityYouWantToGoTo.class); startActivity(intent);显示使用您的日志 -
你的方法
showCompanyInfoServices()中有任何null值变量,找到或者粘贴showCompanyInfoServices() -
确保
listItems和adapter不为空并且已经被初始化。如果您双击 logcat 中的最后 5 行,它会将您带到该行,这会导致Exception。
标签: android listview android-activity android-intent