Android在Onitemclick监听器上从数据库获取ID

时间:2013-04-11 07:57:19

标签: android listview

您好我已经搜索了与此相关的各种问题,但我无法解决此问题。

我是Android新手,我正在开发板球应用程序。这里我展示了一个来自数据库的团队,其中包含TeamId和TeamName.TeamId是一个自动生成的值。当我点击特定团队时,我想从数据库中获取所选的TeamId,并且我希望将此TeamID作为bundle传递以处理下一个函数。但我没有从数据库中获取团队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; 
}

任何人都可以帮助从数据库获取getId

1 个答案:

答案 0 :(得分:2)

当我查看你的代码时,我看到你传递的是textOfSelectedItem的值,但是你的变量填充了你从TextView获得的文本,这绝不是ID你需要。你应该编写一个函数来根据teamName从数据库中提取teamID(如果你想要的话)。所以你可以使用类似的函数,而是使查询变为lile "SELECT ID FROM"+TABLE_NAME+"WHERE teamName="+nameOfTeam;然后将结果传递给你的新意图。