2012-04-28 3 views
-2

SQL Serverから名前を照会したDataTableがあります。これらの名前を使用して、.axmlファイルで作成されたListViewにデータを格納したいとします。これを処理する最良の方法は何でしょうか?これは私がこれまで持っているものです。Monodroid:ListViewにSQLからデータを取り込むにはどうしたらいいですか?

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

using Android.App; 
using Android.Content; 
using Android.OS; 
using Android.Runtime; 
using Android.Views; 
using Android.Widget; 
using System.Data; 

namespace MonoAndroidApplication3 
{ 
    [Activity(Label = "care sheet list test")] 
    public class caresheetlist : ListActivity 
    { 
     protected override void OnCreate(Bundle bundle) 
     { 
      base.OnCreate(bundle); 


      DAL d = new DAL("Data Source=.;Initial Catalog=reptitips;Integrated Security=True"); 
      DataTable tbl = d.FillAndReturn("select ReptileCommonName from reptiles order by ReptileCommonName", null, null, null); 

      string[] reptileNames = new string[tbl.Rows.Count]; 

      for (int i = 0; i < reptileNames.Length; i++) 
      { 
       reptileNames[i] = tbl.Rows[i]["ReptileCommonName"].ToString(); 
      } 


      ListAdapter = new ArrayAdapter<string>(this, Resource.Layout.listitem, reptileNames); 

      ListView.TextFilterEnabled = true; 

      ListView.ItemClick += delegate(object sender, ItemEventArgs args) 
      { 
       // When clicked, show a toast with the TextView text 
       Toast.MakeText(Application, ((TextView)args.View).Text, ToastLength.Short).Show(); 
      }; 

      //AutoCompleteTextView textView1 = (AutoCompleteTextView)FindViewById(autoComplete1); 
      //ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, Resource.Layout.listitem, reptileNames); 
     } 
    } 
} 

と.axml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/bg" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:id="@+id/linearLayout2" 
     android:layout_width="match_parent" 
     android:layout_height="44dp" 
     android:orientation="vertical" > 

    <AutoCompleteTextView 
     android:id="@+id/autoComplete1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="AutoCompleteTextView" > 
    </AutoCompleteTextView> 
    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/linearLayout1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" > 

    <LinearLayout 
     android:id="@+id/linearLayout3" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" > 

     <ListView 
      android:id="@+id/listView1" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" > 
     </ListView> 

    </LinearLayout> 

    </LinearLayout> 

</LinearLayout> 

しかし、上記のコードの結果は、それがアプリケーションの最初のページに私を返すことで、その後、エミュレータがシャットダウンします。

The android device logging show those errors

できるだけ早く

答えて

0

私は今のC#でこれを実装する方法を確信しているが、私はJavaのでしょう使用して助けてください:

listView.setOnItemClickListener(this); 

はActivityクラスはリスナーを実装まかせとメソッドを追加する必要があります

public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) { 
    Log.d(TAG, "onListItemClick: " + position); 

    // you coce here 
} 

希望すると便利です

関連する問題