2017-12-19 37 views
1

私はスピナーから名前を選択し、txtboxにメッセージを入力し、メッセージを送信するためにボタンをクリックする必要があるアクティビティを作成しました。スピナーには2つの弦があります(最初は&の姓)。データベースからの各名前の一意のIDもあります。 データベースから名前のIDを取得するにはどうすればよいですか?スピナーで選択したアイテムのIDを取得するにはどうすればよいですか?

例データ:ID:265958998、FNAME:レオ、LNAME:

  btnsend.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
       String USERID=getIntent().toString(); 

       db.open(); 
      *// db.insertMessage(USERID, );* 
       db.close(); 

       et10.setText(""); 
       Toast.makeText(getApplicationContext(), 
         "Message Sent", Toast.LENGTH_SHORT).show();}} 
      }); 

デシベルへの挿入メッセージ:

void insertMessage(String sender, String recipient) { 
    SQLiteDatabase db = DBHelper.getWritableDatabase(); 

    ContentValues initialValues = new ContentValues(); 
    initialValues.put(KEY_SENDER, sender); 
    initialValues.put(KEY_RECIPIENT, recipient); 
    db.insert(TABLE_MESSAGE, null, initialValues); 


    db.close(); // Closing database connection 
} 
以下クルス

送信ボタン私のコードです

スピナークエリー:

  public List<String> getAllRegisteredInfoAcc(){ 
    List<String> labels = new ArrayList<String>(); 

    // Select All Query 
    String selectQuery = "SELECT tableinfo.*, tableacc.*" + 
      "FROM tableinfo JOIN tableacc ON tableinfo.userid = tableacc.userid WHERE tableacc.userstatus=? "; 
    Cursor cursor = db.rawQuery(selectQuery , new String[]{ "REGISTERED"}); 

    SQLiteDatabase db = DBHelper.getReadableDatabase(); 
    // looping through all rows and adding to list 
    if (cursor.moveToFirst()) { 
     do { 
      labels.add(cursor.getString(4)+""+cursor.getString(3)); 
     } while (cursor.moveToNext()); 
    } 

    // closing connection 
    cursor.close(); 
    db.close(); 
    return labels; 
} 

CallSpinner:あなたは、スピナーのためのアダプタを作るオブジェクトの配列にSQLiteのデータをロードしthroughtスピナーに反映される配列内のオブジェクトをマッピングする必要があり

 spn1(); 

} 
public void spn1() { 
    // database handler 
    DBAdapter db = new DBAdapter(getApplicationContext()); 
    List<String> lables = db.getAllRegisteredInfoAcc(); 
    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_spinner_item, lables); 

    dataAdapter.setDropDownViewResource 
     (android.R.layout.simple_spinner_dropdown_item); 
    spnr1.setAdapter(dataAdapter); 
} 

答えて

0

toString()関数。

まず、オブジェクトのクラスを作成し、追加のtoString()関数

public class MyUser { 
private int id = 0; 
private String name = ""; 
private String lastName =""; 

public MyUser(){} 


public String toString() 
{ 
    return(name + " " + lastName); 
} 

} 

をそのオブジェクトの配列にSQLiteのデータをロードします。

spnr1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
      @Override 
      public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id) { 
       if (position > 0) { //because of the prompt 
        userID = users.get(position - 1).getUserId(); 
        // DO WHAT YOU WANT 
       } 
      } 

      @Override 
      public void onNothingSelected(AdapterView<?> adapterView) { 

      } 
     }); 
0

送信ボタンのリスナー:

  btnsend.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      String USERID=getIntent().toString(); //userid from login activity 
       int a = spinnername.getSelectedItemPosition(); 

       Cursor data = database.getallUsers(); 
       data.moveToPosition(a); 

       database.open(); 
       //insert sender, recipient, message... 
       database.insertMessage(USERID,data.getString(0) ,et10.getText().toString()); 

       database.close(); 
       et10.setText(""); 
       Toast.makeText(getApplicationContext(), 
         "Message Sent", Toast.LENGTH_SHORT).show(); 
      }}); 

スピナーonItemClickListenerでそう

users.addAll(myDataSource.getUsers()); 

     ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, users); 
     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     spnr1.setPrompt("Select your User"); 
     spnr1.setAdapter(
       new NothingSelectedSpinnerAdapter(
         adapter, 
         R.layout.row_state_register_nothing_selected, 
         // R.layout.contact_spinner_nothing_selected_dropdown, // Optional 
         this)); 

()で