2016-06-26 40 views
2

我有這樣一個問題:機器人工作室不能解析符號ID

EditText_Username = (EditText)findViewById(id.EditText_Username); 

我有一個錯誤cannot resolve symbol id 有ID具有相同的錯誤每個代碼行。 我試着重建整個項目並用gradle同步它,但錯誤依然存在。 PS:應用程序在模擬器中正常啓動,即使在代碼中有(id)。

+0

你靜態導入'R.id'嗎?爲什麼? –

+0

此錯誤的典型問題是配置錯誤的XML文件 –

+0

糾正XML文件的任何方法?我是否需要在XML文件中添加內容? –

回答

2

使用

EditText EditText_Username = (EditText)findViewById(R.id.EditText_Username); 

代替。並確認你有

android:id="@+id/EditText_Username" 

爲你憑身份證在你的XML使用Java類搜索的EditText對象。

0

查看您的AndroidManifest.xml,您將擁有一個包ID。現在更換packageId.R.id ID在你的Java文件

0

你正在使用什麼課程?活動還是片段?

IF段

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.fragment_layout, container, false); 
    EditText_Username = (EditText) view.findViewById(R.id.EditText_Username); 
    return view; 
} 

,也有一個良好的編碼習慣,讓你的對象小的情況下,如 「editTextUsername」 「etUsername」, 「imgThumb」, 「tvTitle」 等

0

正如@ cricket_007指出的,你可能是statically imported的R類。

作爲一種解決方案,請將您的脫字號放在代碼的id.EditText_Username部分前,然後按Alt+Enter。在彈出窗口中,選擇Expand static import to R.id,然後選擇Replace all and delete the import。現在您的import static語句被刪除,並且所有的事件都被重命名爲R.id

0

你應該寫R.id.

該代碼首先被編譯,然後在真實或虛擬設備上運行。所以編譯仿真器是不可能的,但不是真正的設備。