2016-10-20 4 views
0

主な活動カントカスタムリストビューでIDを取得

public class MainActivity extends AppCompatActivity { 
Button b1,b2; 
DBHelper mydb; 
TextView id; 
ListView listView; 
SimpleCursorAdapter adapter; 
String[] from = new String[] { mydb.ID, 
     mydb.NAME, mydb.ADDRESS }; 
int[] to = new int[] { R.id.id, R.id.name, R.id.address }; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    mydb = new DBHelper(this); 





    Cursor cursor = mydb.fetch(); 

    listView = (ListView) findViewById(R.id.listView); 


    adapter = new SimpleCursorAdapter(this, R.layout.list, cursor, from, to, 0); 
    adapter.notifyDataSetChanged(); 

    listView.setAdapter(adapter); 




    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 
      // TODO Auto-generated method stub 
      id=(TextView) findViewById(R.id.id); 
      int id_To_Search = Integer.valueOf(id.getText().toString()); 

      Bundle dataBundle = new Bundle(); 
      dataBundle.putInt("_id", id_To_Search); 

      Intent intent = new Intent(getApplicationContext(), AddPatient.class); 

      intent.putExtras(dataBundle); 
      startActivity(intent); 
     } 
    }); 

クラスを追加します

if (extras != null) { 
     b2.setVisibility(View.INVISIBLE); 
     b3.setVisibility(View.VISIBLE); 
     b4.setVisibility(View.VISIBLE); 
     int Value = extras.getInt("_id"); 

     if (Value > 0) { 

      Cursor rs = mydb.getData(Value); 
      id_To_Update = Value; 
      rs.moveToFirst(); 



      name.setText(rs.getString(rs.getColumnIndex(DBHelper.NAME))); 
      address.setText(rs.getString(rs.getColumnIndex(DBHelper.ADDRESS))); 
      mobile.setText(rs.getString(rs.getColumnIndex(DBHelper.MOBILE))); 
      if(rs.getString(rs.getColumnIndex(DBHelper.GENDER)) != "female") 
      { 
       male.setChecked(true); 
      } 
      else 
      { 
       female.setChecked(true); 
      } 
     } 

       } 

DBHelper

public Cursor getData(int id) { 
    SQLiteDatabase db = this.getReadableDatabase(); 
    return db.rawQuery("select * from patients where _id=" + id + "", null); 
} 

Main.xml

<ListView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/listView" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_marginTop="65dp" /> 

List.xmlのは

<TextView 
    android:id="@+id/id" 
    android:layout_width="25dp" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:layout_marginRight="6dp" 
    android:padding="3dp" 
    android:visibility="invisible" /> 

<TextView 
    android:id="@+id/name" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:maxLines="1" 
    android:padding="3dp" 
    android:fontFamily="sans-serif" 
    android:textSize="18sp" 
    android:layout_toEndOf="@+id/id" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" /> 

<TextView 
    android:id="@+id/address" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 

    android:ellipsize="end" 
    android:maxLines="2" 
    android:padding="3dp" 
    android:visibility="visible" 
    android:layout_marginTop="25dp" 
    android:textSize="18sp" 
    android:layout_toEndOf="@+id/id" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" /> 

は、どのように私は、クリックされたリストのIDを取得し、私はそれを行うことができ、次page.?How編集のためにそれらの詳細を表示することができます。私を助けてください。次のページは目的の編集や削除に使用されます

答えて

1

リスト要素のビューIDを見つけるにはビューを使用する必要があります。あなたがデータにアクセスするためのビューIDに頼るべきではありません

id=(TextView) arg1.findViewById(R.id.id); 
1

にonItemClickで線の下に
変更()

id=(TextView) findViewById(R.id.id); 

リストビューに表示されるデータを含む別のモデル(ArrayListと言う)が必要です。ユーザーが項目を選択すると、リストされた項目の位置を取得し、すべての情報を見つけることができる配列内の対応する項目を選択します