这是活动 1,它是一个列表视图。当用户单击一个项目时,我希望单击该项目以启动一个类的实例并将一个 int 值传递给它,稍后将在开关中使用该值。
@Override
public void onItemClick(AdapterView<?> adapter, View view,
int position, long id) {
switch(position){
case 0:
Intent g = new Intent(books.this, SpecificBook.class);
Bundle b = new Bundle();
b.putInt("dt", 0);
g.putExtras(b);
books.this.startActivity(g);
break;
case 1:
Intent ex = new Intent(books.this, SpecificBook.class);
Bundle b1 = new Bundle();
b1.putInt("dt", 1);
ex.putExtras(b1);
books.this.startActivity(ex);
break;
//etc.
这是活动 2,它应该检索 int 值并从数据库帮助程序类中调用适当的方法。
public class SpecificBook extends Activity {
private DatabaseHelper Adapter;
Intent myLocalIntent = getIntent();
Bundle myBundle = myLocalIntent.getExtras();
int dt = myBundle.getInt("dt");
@SuppressWarnings("deprecation")
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listy);
ListView lv = (ListView)findViewById(R.id.listview);
Adapter = new DatabaseHelper(this);
Adapter.open();
Cursor cursor = null;
switch(dt){
case 0:cursor = DatabaseHelper.getbook1Data(); break;
case 1:cursor = DatabaseHelper.getbook2Data(); break;
//etc.
}
startManagingCursor(cursor);
等等
数据库方法是查询。基本上,我希望书类列表视图中的每个项目都根据所选项目运行它自己的查询并显示结果。我收到“找不到源”和运行时异常错误。我哪里错了?有没有更好的方法来解决这个问题?
我已经尝试过“getter and setter”方法,但无济于事。我还尝试了意图实例上的“putextra”方法,但没有奏效。