您好我已经搜索了与此相关的各种问题,但我无法解决此问题。
我是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
答案 0 :(得分:2)
当我查看你的代码时,我看到你传递的是textOfSelectedItem
的值,但是你的变量填充了你从TextView获得的文本,这绝不是ID你需要。你应该编写一个函数来根据teamName从数据库中提取teamID(如果你想要的话)。所以你可以使用类似的函数,而是使查询变为lile "SELECT ID FROM"+TABLE_NAME+"WHERE teamName="+nameOfTeam;
然后将结果传递给你的新意图。