2013-04-11 70 views
0

嗨我已经搜遍了与此相关的各种问题,但我无法解决问题。Android从Onitemclick数据库获取ID聆听者

我是Android新手,我正在开发板球应用程序。在这里,我显示了一个来自数据库的团队,它包含TeamId和TeamName.TeamId是一个自动生成的值。当我点击特定的团队时,我想从数据库中获取所选的TeamId,并且我想通过此TeamID作为捆绑来处理下一个功能。但我没有从数据库获取团队ID。

而下面就是我想到目前为止代码,

 Intent intent = getIntent(); 
    teamName=(ArrayList<String>)getIntent().getSerializableExtra("Teams"); 
    ArrayAdapter<String> adapter=new ArrayAdapter<String>(getApplicationContext(), 

    android.R.layout.simple_list_item_1,teamName); 
    teamList.setAdapter(adapter); 

的ListView OnITEMCLICk

teamList.setOnItemClickListener(new OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> arg0, View v, int id,long position) { 
      // TODO Auto-generated method stub 
      textOfSelectedItem =((TextView) v).getText().toString(); 
      Log.v("Clicked item id", " "+ id); 


      Toast.makeText(getApplicationContext(), "Clicked is " + id, Toast.LENGTH_SHORT).show(); 
      oncreated = false; 
      Intent intent=new Intent(TeamOneActivity.this,TeamPlayersTeamOne.class); 
      intent.putExtra("selected teamname", textOfSelectedItem); 
      startActivity(intent); 
      ///g.setSelectedTeamOne(textOfSelectedItem); 
     } 
    }); 

这是我的数据库

public ArrayList<String> getTeamID() { 
    // TODO Auto-generated method stub 

    ArrayList<String> TeamList=new ArrayList<String>();   
    String selectQuery="SELECT * FROM " + TABLE_NAME;  
    SQLiteDatabase db = this.getWritableDatabase(); 
    Cursor cursor=db.rawQuery(selectQuery, null);  
    if(cursor.moveToFirst()) 
    { 
     do 
     { 
      //String TeamName=cursor.getString(cursor.getColumnIndex("TeamName")); 
      String TeamID=cursor.getString(cursor.getColumnIndex("TeamID")); 
      //TeamList.add(TeamName); 
      TeamList.add(TeamID); 

     }while(cursor.moveToNext());   
     cursor.close(); 
    } 
    return TeamList; 
} 

任何一个可以帮助如何从数据库获取ID

回答

2

当我看着你的代码时,我发现你传递的意图是textOfSelectedItem的值,但是你的变量中充满了你从TextView获得的文本,这绝不是你需要的ID。你应该只写一个函数来根据teamName从数据库中提取teamID(如果这是你想要的)。因此,您可以使用类似的功能,但是可以使查询变成一种类似的方法"SELECT ID FROM"+TABLE_NAME+"WHERE teamName="+nameOfTeam;然后将该结果传递给您的新意图。

+0

非常感谢你......你的主意完美无缺..好逻辑.. – user1835052 2013-04-11 09:32:32

+0

非常感谢@Cosmin Ionascu – 2014-11-28 06:08:43