好吧,由于setContentView行,我有一个因加载而崩溃的应用程序。 现在在你问之前,当我在第15行注释掉setContentView行时,我得到了一个有用的应用程序。但是当我放入它的那一刻,它就错了。现在这是使用2.1-update1 android。
爪哇:
package com.clark.listview;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class listview extends ListActivity {
/** Called when the activity is first created. */
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
//setContentView(R.layout.main);
// Create an array of Strings, that will be put to our ListActivity
String[] names = new String[] { "Linux", "Windows7", "Eclipse", "Suse",
"Ubuntu", "Solaris", "Android", "iPhone", "ClarkPhone" };
// Use your own layout and point the adapter to the UI elements which
// contains the label
this.setListAdapter(new ArrayAdapter<String>(this, R.layout.rowlayout,
R.id.label, names));
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
// Get the item that was clicked
Object o = this.getListAdapter().getItem(position);
String keyword = o.toString();
Toast.makeText(this, "You selected: " + keyword, Toast.LENGTH_LONG)
.show();
if (keyword.startsWith("Windows7") || keyword.startsWith("iPhone")
|| keyword.startsWith("Solaris")) {
launchTest();
}
}
protected void launchTest() {
Intent i = new Intent(this, home.class);
startActivity(i);
}
}
XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/main"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android"
android:cacheColorHint="#00000000"
android:background="@drawable/bg">
</LinearLayout>
答案 0 :(得分:8)
如果您的Activity
正在扩展ListActivity
类,请确保您的主布局文件必须包含ListView
元素,如下所示。
<ListView android:id="@android:id/list" android:layout_height="wrap_content"
android:layout_width="match_parent" />
您的应用程序崩溃了,因为您正在为ListView设置适配器,而这在您的布局文件中确实不存在。
请参阅文档:http://developer.android.com/reference/android/app/ListActivity.html
答案 1 :(得分:0)
我遇到了类似的问题,因为我通过删除我的Java文件正在使用的元素来编辑我的XML文件。具体地,
@InjectView(R.id.thing)
私人EditText etThing;
一旦我确定删除了所有不存在的事件的实例,它就会再次起作用。只需将您的java与xml进行比较,并确保没有不一致。