我有一个显示列表视图的应用程序。我打算这样做,以便当用户点击listview项时,会出现一个显示XML布局的对话框。但我的问题很少。
我已经启动并运行了列表视图。以下是onclick侦听器的活动类中的代码。
final ListView lv1 = (ListView) findViewById(R.id.listV_main);
lv1.setAdapter(new ItemListBaseAdapter(this, image_details));
lv1.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
Object o = lv1.getItemAtPosition(position);
ItemDetails obj_itemDetails = (ItemDetails)o;
Toast.makeText(VanillaBlockList.this, "Loading details for: " + " " + obj_itemDetails.getName(), Toast.LENGTH_LONG).show();
if(obj_itemDetails.getPrice().equals("ID - 1")){
// custom dialog
final Dialog dialog = new Dialog(Context);
dialog.setContentView(R.layout.va_type1);
dialog.setTitle("Information");
dialog.show();
}
if(obj_itemDetails.getPrice().equals("ID - 2")){
/* Stuff here*/ }
}
});
}
问题是以上代码的这一部分:
if(obj_itemDetails.getPrice().equals("ID - 1")){
// custom dialog
final Dialog dialog = new Dialog(Context);
dialog.setContentView(R.layout.va_type1);
dialog.setTitle("Stone");
dialog.show();
}
创建新对话框的行给了我一个错误。在Eclipse中,“new Dialog(Context)”的“Context”部分用红色下划线表示错误。
有谁知道如何解决这个问题?
由于
答案 0 :(得分:2)
你能告诉我们错误是什么,而不是它在哪里吗?
除了基础知识之外,我没有使用Context或Dialog,但尝试传入Context对象,而不仅仅是类。在onActivityCreate方法中,调用
Context c = this;
然后
final Dialog dialog = new Dialog(c);
答案 1 :(得分:0)
您只能将对象传递给方法/构造函数。 “上下文”不是一个对象。 而不是新的Dialog(Context)尝试getApplicationContext()或getActivityContext():
final Dialog dialog = new Dialog(getApplicationContext());
答案 2 :(得分:0)
final Dialog dialog = new Dialog(Context);可能是问题是使用Context.You使用您的活动名称.this或getApplicationContext()。