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 を取得する場合、2 つの異なるレイアウト 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 に答える