0
我正在爲我的學士學位開發移動應用程序,並且我嘗試插入新功能,當有人在textview中點擊號碼來撥打該號碼時。我編寫了下面的代碼,我期望能夠正常工作,但是我得到一個錯誤。有一個文本視圖可以保存電話號碼,但有多個電話號碼的人。我認爲如果只有一個人擁有一個電話號碼,那麼它會好起來的。Array TextView點擊撥號電話Xamarin Android
這個電話號碼列表看起來像 - 所有textView3
PhoneNUmber1(textView3)
PhoneNUmber2(textView3)
PhoneNUmber3(textView3)
等
錯誤:
06-28 13:48:49.574 I/MonoDroid(30648): UNHANDLED EXCEPTION:
06-28 13:48:49.584 I/MonoDroid(30648): System.NullReferenceException: Object reference not set to an instance of an object
在MainActivy中的OnCreate函數的代碼是
TextView txtViewTel = FindViewById<TextView>(Resource.Id.textView3);
string stringtelefon = txtViewTel.ToString();
// Toast.MakeText(this, stringtelefon, ToastLength.Short).Show();
txtViewTel.Click += delegate
{
var uri = Android.Net.Uri.Parse(stringtelefon);
var intent = new Intent(Intent.ActionDial, uri);
StartActivity(intent);
};
textView3是具有電話號碼爲一個陣列中的每個客戶端的文本圖。
的AXML是
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="100dp"
android:weightSum="100"
android:background="#F1F1F1">
<ImageView
android:id="@+id/imgPic"
android:src="@drawable/icon_client"
android:layout_width="0dp"
android:layout_weight="25"
android:layout_height="match_parent"
android:background="#3B5998"
android:adjustViewBounds="true"
android:scaleType="center"
android:layoutDirection="inherit" />
<LinearLayout
android:orientation="vertical"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="65">
<TextView
android:id="@+id/textView1"
android:text="Nume Client"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="65"
android:gravity="center"
android:textSize="18sp"
android:textColor="#000" />
<TextView
android:id="@+id/textView2"
android:text="Prenume Client"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="65"
android:gravity="center"
android:textSize="18sp"
android:textColor="#000" />
<TextView
android:id="@+id/textView3"
android:text="Telefon"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="65"
android:gravity="center"
android:textSize="18sp"
android:textColor="#000"
android:layout_marginRight="1.3dp"
android:clickable="true" />
</LinearLayout>
<CheckBox
android:id="@+id/btnStar"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="10"
android:button="@android:drawable/btn_star"
android:checked="false" />
</LinearLayout>
在查看添加電話號碼 - TextView的
public override View GetView(int position, View convertView, ViewGroup parent)
{
View row = convertView;
if (row == null)
{
row = LayoutInflater.From(mContext).Inflate(mLayout, parent, false);
}
row.FindViewById<TextView>(Resource.Id.textView1).Text = mClient[position].NumeClient;
row.FindViewById<TextView>(Resource.Id.textView2).Text = mClient[position].PrenumeClient;
row.FindViewById<TextView>(Resource.Id.textView3).Text = mClient[position].TelClient;
ImageView pic = row.FindViewById<ImageView>(Resource.Id.imgPic);
if (mClient[position].Image != null)
{
pic.SetImageBitmap(BitmapFactory.DecodeByteArray(mClient[position].Image, 0, mClient[position].Image.Length));
}
pic.Tag = position;
pic.Click -= pic_Click;
pic.Click += pic_Click;
return row;
}
反序列化JSON與數據庫中的數據來填充ListView
private void webClient_DownloadDataCompleted(object sender, DownloadDataCompletedEventArgs e)
{
RunOnUiThread(() =>
{
string json = Encoding.UTF8.GetString(e.Result);
List<Client> mClient = JsonConvert.DeserializeObject<List<Client>>(json);
Action<ImageView> action = PicSelected;
mAdapter = new ClientiListAdapter(this, Resource.Layout.ListaClienti, mClient, action);
mListView.Adapter = mAdapter;
});
}
電話號碼的格式是JSON。我使用json(「FirstName」,「LastName」,「TelephoneNumber」)中的數據填充ListView。爲了更好的理解,我添加了其他代碼。 – CDan