2015-06-28 91 views
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; 
      }); 
     } 

回答

1

對於電話意圖工作,它必須是像這樣:

Uri.parse("tel:" + stringtelefon) 

如果不工作,然後我可能需要知道升技更多的應用程序:

而且您使用在佈局列表視圖中的xaml?

從哪裏調用異常,應該說行號?

你填充textViews的電話號碼格式是什麼?

+0

電話號碼的格式是JSON。我使用json(「FirstName」,「LastName」,「TelephoneNumber」)中的數據填充ListView。爲了更好的理解,我添加了其他代碼。 – CDan

相關問題