2014-02-11 140 views
2

這可能會有很明顯的答案,但我似乎無法弄清楚。我試圖在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在其他類中是可見的? 它已被宣佈爲公開。任何提示或建議將是偉大的。如果需要,可以發佈源代碼!

回答

2

嘗試下面的公開聲明已分配給txtFoodSearch靜態聲明。這是因爲關鍵字靜態使其變量,如txtFoodSearch全局可訪問,而他們的類被加載。

所以,你聲明在其對應的類公共靜態txtFoodSearch後,你應該能夠只是做:Classname.txtFoodSearch在任何其他類訪問的txtFoodSearch內容。但請確定,包含txtFoodSearch的類別被宣佈爲public

+0

謝謝,似乎有伎倆! –