我是移动开发的新手。我正在使用xamarin
中的visual studio 2015
开发android。我正在关注这个sample code。我正在我的设备上部署我的应用程序,它运行良好。我基本上有以下功能
所有功能都运行良好但在更新时我点击update layout
中的更新按钮,首先获取DB
(SQLITE)中的所有数据,然后将其显示在{{1}在示例代码中,您可以看到Edit Text Boxes
代码。所以在更新时我得到了波纹管错误
我在updateEmployee.cs
中获取空值而dName
字段中有名称
上面我宣布了name
dName
等像贝娄
dEmail
同样在TextView dName, dEmail, dPhone, dDesignation;
String name, email, phone, designation;
方法中,我也获得了空值,初始化中的initialize
等是eName
布局中的id
,其axml如下
complete_data
更新1:
Bellow是我得到此异常的代码
<?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">
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="350dp"
android:divider="#000"
android:dividerHeight="1dp" />
<TextView
android:id="@+id/eName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Name" />
<TextView
android:id="@+id/eEmail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Email" />
<TextView
android:id="@+id/ePhone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Phone" />
<TextView
android:id="@+id/eDesignation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Designation" />
</LinearLayout></ScrollView></LinearLayout>
名称字段位于 void List_ItemClick(object sender, AdapterView.ItemClickEventArgs e)
{
click_Employee = e.Position + 1;
ICursor c = dbHelper.getSingleEntry(click_Employee);
c.MoveToFirst();
name = c.GetString(c.GetColumnIndex(dbHelper.EMPLOYEE_NAME));
email = c.GetString(c.GetColumnIndex(dbHelper.EMPLOYEE_EMAIL));
phone = c.GetString(c.GetColumnIndex(dbHelper.EMPLOYEE_PHONE));
designation = c.GetString(c.GetColumnIndex(dbHelper.EMPLOYEE_DESIGNATION));
dName.Text = name;
dEmail.Text = email;
dPhone.Text = phone;
dDesignation.Text = designation;
}
,我将此字符串分配给我的编辑文本string
等,如上面的代码所示。在dName
我收到此dName.text = name
例外,而名称字段包含名称。还有其他办法吗?
我不确定我错过了什么。任何帮助都将受到高度赞赏
答案 0 :(得分:1)
导致此问题的最可能原因是FindViewById
未被调用或实际上未分配dname
。
这可能有多种原因:
initialize
方法永远不会被调用List_ItemClick
TextView
而在代码中类型为EditText
设置两个断点。一个位于List_ItemClick
,一个位于initialize
。检查首先调用哪一个。单步执行initialize
以确保查找和分配视图。
答案 1 :(得分:0)
首先,我从您的代码中看到,您已将dName声明为TextView,但是当您使用FindViewById时,您正在解析EditText,因此请确保在两个地方都使用TextView。
第二,确保您的代码按以下顺序运行: 1-将dName声明为TextView。 1-为“名称”变量分配一个值。 2-使用FindViewById查找eName。 3-为dName分配一个值。
因此,您的代码应如下所示:
TextView dName;
string name = "Some name"; // or you can get the name from database
dName = (TextView)FindViewById(Resource.Id.eName);
dName.Text = name;