对于很多人来说,这可能会有一个明显的答案,但我似乎无法弄明白。我试图在Android应用程序中进行api调用,但继续运行“.....无法解决”我有三个Java类,FoodSearchActivity,GetItemsActivity和GetData!
FoodSearchActivity extends Activity;
此类声明以下
public ListView list;
public Button btnSearch;
public EditText txtFoodSearch;
但在GetItemsActivity
班级中,txtFoodSearch
无法解析,除非我延长FoodSearchActivity
。这反过来意味着我无法实现AsyncTask
。当GetItemsActivity
确实实施AsyncTask
时,我收到错误:
" The type AsyncTask<String,String,String> cannot be a superinterface of GetItemsActivity; a superinterface must be an interface"
GetItemsActivity extends FoodSearchActivity;
为了尝试解决这个问题,我创建了一个新的GetData
类,扩展了AsyncTask<String, String, String>
GetData extends AsyncTask<String, String, String>
当我这样做时,我没有错误
txtFoodSearch.getText().toString();
我回到txtFoodSearch
无法解决。 txtFoodSearch
是一个EditText
字段,用于输入用户。我怎样才能改变这一点,以便txtFoodSearch
在其他类中可见?
它已被宣布为公开。任何提示或建议都会很棒。如果需要,可以发布源代码!
答案 0 :(得分:2)
尝试使用静态声明分配您已分配给 txtFoodSearch 的公开声明。这是因为 static 关键字可以全局访问 txtFoodSearch 等变量,同时加载它们的类。
因此,在相应的类中声明 public static txtFoodSearch 之后,您应该能够在任何其他类中执行: Classname.txtFoodSearch 来访问其中的内容的 txtFoodSearch 即可。但请确保包含 txtFoodSearch 的类声明为 public 。