2

私はアンドロイドが初めてです。編集ボタンと削除ボタンを備えた学生のリスト ビューがあるアプリケーションを開発しています。お気に入り


 STUDENT LIST

[ABC] [編集] [削除]

[防御][編集][削除]


このコードでは、学生の詳細をリストすることができます<Textview>

public class DataBaseDemoActivity extends ListActivity {
/** Called when the activity is first created. */
  SQLiteDatabase db;
  Button btnInsert;
  ArrayAdapter<String> students;

  @Override
  public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  try{
  db=openOrCreateDatabase("StudentDB",SQLiteDatabase.CREATE_IF_NECESSARY,null);

  Cursor c=db.rawQuery("SELECT * FROM temp",null);
  String[] students = new String[c.getCount()];

  if (c.moveToFirst())
  {                       
      for (int i = 0; i < c.getCount(); i++)
      {
          students[i] = c.getString(0).toString()+" "+c.getString(1).toString();
          c.moveToNext();
      }           
  }
  c.close();

  setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, students));

  ListView lv = getListView();
  lv.setTextFilterEnabled(true);

  lv.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View view,
        int position, long id) {
      // When clicked, show a toast with the TextView text
      Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
          Toast.LENGTH_SHORT).show();
    }
  });


  }catch(SQLException e)
  {
  }
}

}

レコードの ID をリスト ビューに保存する必要があるため、編集または削除ボタンをクリックすると、ID を見つけて DB に変更を加える必要があります。<TextView>[show details] と<EditText>[visibility: insisible - to save id of the record] という2 つのフィールドに値を設定するにはどうすればよいですか。<TextView>上記のコードを使用して詳細を取得できます。任意の提案をいただければ幸いです。

アップデート :

私が使用しているレイアウト

    <?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="fill_parent"
    android:orientation="horizontal"    
    >
    <EditText 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="invisible"
        android:inputType="text"
        android:onClick="showInfo"
        />
    <TextView xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="230dip"
        android:layout_height="wrap_content"
        android:textSize="16sp"
        android:id="@+id/studentInfo" >
    </TextView>

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/action"
        android:onClick="showInfo"
         />

</LinearLayout>
4

2 に答える 2

1

この行の後に..

   students[i] = c.getString(0).toString()+" "+c.getString(1).toString();
    student_ids[i]=Integer.parseInt(//get the  id... )
  //and you dont need to put it in invisible edittext...

onclickメソッドでは、整数の「位置」を取得し、その位置のstudents_ids []の値を取得します..

 int id=students_ids[position];
于 2012-04-21T05:39:39.873 に答える
1

カーソル データ フェッチ ループ内で ID を取得し、任意のHashMap<id,String>コレクションを使用して ID をデータ (テキスト) と共に保存できます。

要件に応じて、 withSimpleCursorAdapterの代わりに使用することをお勧めします。ArrayAdapterListView

したがって、リストを使用してデータベース レコードを簡単に管理し、リスト アイテムをクリックすると、特定のレコードのデータベースに関連するすべての情報を取得できます。

SimpleCursorAdapters と ListViewsを見てください。

Android 用のカスタム CursorAdapter の作成

于 2012-04-21T05:39:56.847 に答える