public class Page1 extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.welcome);
final Button button = (Button) findViewById(R.id.welcome);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Intent myIntent = null;
myIntent = new Intent(view.getContext(), Page1.class);
startActivity(myIntent);
}
});
}
}
我想从另一个名为welcome.xml的XML文件加载内容,但我收到错误welcome cannot be resolved or is not a field
这个Page1.java类是我的Android应用程序的下一个屏幕。
我的Welcome.xml
<Button android:text="@+id/Button01" android:id="@+id/welcome"
android:layout_width="wrap_content" android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android">
</Button>
答案 0 :(得分:1)
您可以粘贴完整的xml文件并记录日志吗?我的第一个猜测是你有一个案例问题,你的布局文件名为“欢迎”,你有setContentView为“欢迎”。对于布局和控件也没有相同的名称,它会让人感到困惑。
答案 1 :(得分:1)
应该有效。
如果你没有设置处理程序,你会看到屏幕上的按钮吗?
文件实际命名为«* W * elcome.xml»?尝试删除大写字母(将其重命名为welcome.xml)。然后进行清理,重建并检查它是否现在有效......
答案 2 :(得分:1)
public class Page1 extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.welcome);
final Button button = (Button) findViewById(**R.id.Button01**);//use id of button here not layout name
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Intent myIntent = null;
myIntent = new Intent(view.getContext(), Page1.class);
startActivity(myIntent);
}
});
}
}
答案 3 :(得分:1)
这就是你welcome.xml
所拥有的吗?
您的按钮不在布局下。因此,布局文件本身将抛出异常。
其次,android:text
不正确。您在那里填写的条目应该在android:id
并且它不应该是:
final Button button = (Button) findViewById(R.id.welcome);
但:
final Button button = (Button) findViewById(R.id.Button01);
答案 4 :(得分:0)
Welcome.xml包含带有id welcome的Button,它不是setContentView的布局 视图可以是List,relative,absolute table等。您可以在其中添加按钮。
并检查文件名中的案例并指定R.layout。 *
使用linearlayout和一个按钮的示例xml文件。将其另存为welcome.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/linearlayoutmain"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<Button
android:id="@+id/ButtonWelcome"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/button"
>
</Button>
</LinearLayout>
您的代码中的
public class Page1 extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.welcome);
final Button button = (Button) findViewById(R.id.ButtonWelcome);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Intent myIntent = null;
**//You have called Page1.class again which is the name of this class //again**
myIntent = new Intent(view.getContext(), Page1.class);
startActivity(myIntent);
}
});
}
}
类似地创建另一个活动,并将意图中的类标记为粗体的调用。
答案 5 :(得分:0)
您的Welcome.xml不完整,应该是这样的:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:padding="3dip"
android:orientation="vertical">
<Button android:text="@+id/Button01" android:id="@+id/welcome"
android:layout_width="wrap_content" android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android">
</Button>
</LinearLayout>
此外,如果您仍有问题,尝试清理您的项目,以便R.java更新为新的id值,如welcome id(R.id.welcome),因为如果R. java不包含welcome id,你会收到类似的错误。