Java 为什么我会在这里得到一个非法的辩论例外?
我是安卓的新手,在这方面我遇到了困难。我要做的就是将数据从数据库显示到列表视图。错误总是未处理的异常:illegelargumentexception 我的xml是:Java 为什么我会在这里得到一个非法的辩论例外?,java,android,Java,Android,我是安卓的新手,在这方面我遇到了困难。我要做的就是将数据从数据库显示到列表视图。错误总是未处理的异常:illegelargumentexception 我的xml是: <?xml version="1.0" encoding="utf-8"?> <AbsoluteLayout android:id="@+id/widget0" android:layout_width="fill_parent" android:layout_height="fill_p
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
android:id="@+id/widget0"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<Button
android:id="@+id/button1"
android:layout_width="117dp"
android:layout_height="29dp"
android:text="SAVE"
android:textSize="8sp"
android:layout_x="17dp"
android:layout_y="186dp" />
<TextView
android:id="@+id/fname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="First Name"
android:textSize="10sp"
android:layout_x="134dp"
android:layout_y="24dp" />
<TextView
android:id="@+id/lname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Last Name"
android:textSize="10sp"
android:layout_x="132dp"
android:layout_y="75dp" />
<EditText
android:id="@+id/t1"
android:layout_width="287dp"
android:layout_height="32dp"
android:text="EditText"
android:textSize="12sp"
android:layout_x="15dp"
android:layout_y="43dp" />
<EditText
android:id="@+id/t2"
android:layout_width="287dp"
android:layout_height="34dp"
android:textSize="12sp"
android:layout_x="14dp"
android:layout_y="96dp" />
<TextView
android:id="@+id/mname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Middle Name"
android:textSize="10sp"
android:layout_x="126dp"
android:layout_y="130dp" />
<EditText
android:id="@+id/t3"
android:layout_width="287dp"
android:layout_height="31dp"
android:textSize="12sp"
android:layout_x="13dp"
android:layout_y="149dp" />
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
android:textSize="10sp"
android:layout_x="139dp"
android:layout_y="191dp" />
<ListView
android:id="@+id/lst"
android:layout_width="320dp"
android:layout_height="172dp"
android:background="#ffccccff"
android:layout_x="0dp"
android:layout_y="258dp" />
<TextView
android:id="@+id/ID"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="TextView"
android:layout_x="26dp"
android:layout_y="224dp" />
<TextView
android:id="@+id/fnameshow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
android:layout_x="94dp"
android:layout_y="225dp" />
<TextView
android:id="@+id/lnameshow"
android:layout_width="wrap_content"
android:layout_height="21dp"
android:text="TextView"
android:layout_x="164dp"
android:layout_y="225dp" />
<TextView
android:id="@+id/mnameshow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
android:layout_x="230dp"
android:layout_y="227dp" />
<Button
android:id="@+id/btnFind"
android:layout_width="117dp"
android:layout_height="29dp"
android:text="Find"
android:textSize="10sp"
android:layout_x="193dp"
android:layout_y="186dp" />
</AbsoluteLayout>
Code:
void find_Click(object sender, EventArgs e)
{
string sColumnName = "";
if (text1.Text.Trim () != "") {
sColumnName = "fname";
GetCursorView (sColumnName, text1.Text.Trim ());
} else
if (text2.Text.Trim () != "") {
sColumnName = "lname";
GetCursorView (sColumnName, text2.Text.Trim ());
} else
if (text3.Text.Trim () != "") {
sColumnName = "mname";
GetCursorView (sColumnName, text3.Text.Trim ());
}
text.Text = "Search " + sColumnName + ".";
ListView lvTemp = FindViewById<ListView>(Resource.Id.lst);
lvTemp.ItemClick += new EventHandler<AdapterView.ItemClickEventArgs>(ListView_ItemClick);
}
protected void GetCursorView(string sColumn, string sValue)
{
Android.Database.ICursor icTemp = sql.GetRecordCursor(sColumn, sValue);
if (icTemp != null)
{
icTemp.MoveToFirst();
ListView lvTemp = FindViewById<ListView>(Resource.Id.lst);
string[] from = new string[] { "id", "fname", "lname", "mname" };
int[] to = new int[] {
Resource.Id.ID,
Resource.Id.fnameshow,
Resource.Id.lnameshow,
Resource.Id.mnameshow
};
// creating a SimpleCursorAdapter to fill ListView object.
SimpleCursorAdapter scaTemp = new SimpleCursorAdapter(this, Resource.Layout.Main, icTemp, from, to); //Error on this line
lvTemp.Adapter = scaTemp;
}
else
{
text.Text = sql.Message;
}
}
代码:
void find_单击(对象发送者,事件参数e)
{
字符串sColumnName=“”;
如果(text1.Text.Trim()!=“”){
sColumnName=“fname”;
GetCursorView(sColumnName,text1.Text.Trim());
}否则
如果(text2.Text.Trim()!=“”){
sColumnName=“lname”;
GetCursorView(sColumnName,text2.Text.Trim());
}否则
如果(text3.Text.Trim()!=“”){
sColumnName=“mname”;
GetCursorView(sColumnName,text3.Text.Trim());
}
text.text=“搜索”+sColumnName+”;
ListView lvTemp=findviewbyd(Resource.Id.lst);
lvTemp.ItemClick+=新事件处理程序(ListView\u ItemClick);
}
受保护的void GetCursorView(字符串sColumn,字符串sValue)
{
Android.Database.ICursor icTemp=sql.GetRecordCursor(sColumn,sValue);
if(icTemp!=null)
{
icTemp.MoveToFirst();
ListView lvTemp=findviewbyd(Resource.Id.lst);
字符串[]from=新字符串[]{“id”、“fname”、“lname”、“mname”};
int[]至=新int[]{
Resource.Id.Id,
Resource.Id.fnameshow,
Resource.Id.lnameshow,
Resource.Id.mnameshow
};
//创建SimpleCursorAdapter以填充ListView对象。
SimpleCursorAdapter scaTemp=新的SimpleCursorAdapter(this,Resource.Layout.Main,icTemp,from,to);//此行出错
lvTemp.适配器=scaTemp;
}
其他的
{
text.text=sql.Message;
}
}
您对列表视图的引用应该是
lvtemp=(ListView)findViewById(R.id.lst)哪一行导致错误?您可以发布stacktrace吗?可能与SimpleCorsOrAdapter scaTemp=new SimpleCorsOrAdapter(这是Resource.Layout.Main,icTemp,from,to)有相同的问题;这一行是error@user2146902:如果您正在扩展ListActivity,那么xml中的您的ListView id必须是
android:id=“@android:id/list”
我已经将我的id更改为list。我应该为listactivity添加引用吗?