我有一个问题:
EditText_Username = (EditText)findViewById(id.EditText_Username);
我有一个错误cannot resolve symbol id
每个具有id的代码行都有相同的错误。
我尝试重建整个项目并将其与gradle同步,但错误仍然存在。
PS:即使代码中有(id),应用程序也在模拟器中正常启动。
答案 0 :(得分:3)
使用
EditText EditText_Username = (EditText)findViewById(R.id.EditText_Username);
代替。并验证你有
android:id="@+id/EditText_Username"
对于您使用Java类在XML中搜索Id的EditText对象。
答案 1 :(得分:0)
查看您的AndroidManifest.xml,您将拥有一个包ID。现在用Java文件中的packageId.R.id替换id
答案 2 :(得分:0)
您正在使用哪个班级?活动还是片段?
if Fragment
@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"等
答案 3 :(得分: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
。
答案 4 :(得分:0)
你应该写R.id。
首先编译代码,然后在真实或虚拟设备上运行。所以编译模拟器是不可能的,但不是真正的设备。
答案 5 :(得分:0)
在与您命名为R相同的范围内检查变量。如果您有一个名为R的变量,则将其重命名为其他名称。