1

我仍在学习编码,但我持续编码的应用程序无法在 2 个不同的设备上运行。Eclipse(最新的android sdk)可以是错误还是我每个应用程序都编码错误?它的力量在 2 台设备上关闭

    public class MainActivity extends Activity {


Button dugme = (Button) findViewById(R.id.dugme);

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    dugme.setOnClickListener(new View.OnClickListener(){

@Override
    public void onClick(View v) {
            Cao();
        }   
        });



}
private void Cao(){
    Intent Cao = new Intent(this, Cao.class);
    startActivity(Cao);
}}

这是曹班

    public class Cao  extends Activity{


protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.cao);
}}

和清单

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.book1"
    android:versionCode="1"
     android:versionName="1.0" >

    <uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="17" />

    <application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.example.book1.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
       </activity>
       <activity
        android:name="com.example.book1.Cao"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.Action.VIEW" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
      </activity>
      </application></manifest>
4

3 回答 3

5

试着放

Button dugme = (Button) findViewById(R.id.dugme);

onCreate您的方法中的这一行。一个类应该只有变量和方法。这条线是定义。所以我认为这只是你的代码中的问题。除了您的代码没有任何问题。

于 2013-04-09T12:57:51.597 回答
1

把这条线

Button dugme = (Button) findViewById(R.id.dugme)

setContentView(R.layout.activity_main)

Android 根据其每个布局 xml 获取 view_id 的每个引用

想想如果android在为给定的活动设置布局之前获取视图reference_id,那么我们甚至不能为两个不同的布局xml保留相同的视图ID名称。

于 2013-04-09T13:10:48.997 回答
0

这一行是错误的:

Button dugme = (Button) findViewById(R.id.dugme);

不是因为它不在onCreate方法中,而是因为它出现在这一行之前:

 setContentView(R.layout.activity_main);

原因是:如果您没有将布局设置为活动的内容视图,则无法使用该findViewById方法,因为找不到该视图的位置(您的布局尚未设置)。

于 2013-04-09T13:04:32.393 回答