0

API 15 でターゲット SDK を使用して Eclipse でアプリを作成しました。ボタンに新しいアクティビティを開始させたい。そのコードを作成しましたが、問題があります。私が私の電話に出くわしたとき、ninetology Stealh 2、ボタンをクリックするとアプリがクラッシュし、私の電話は私にこれを示します:

「残念ながらスタート」

私は他の電話2でそれをテストしましたが、同じ問題を示しています。私はまた、新しいボストン、ボンゲラから学んだテクニックをさらに使用していますが、それでも同じ問題があります。これが私の.xmlとJavaコードです:-

  1. メニュー.java
package com.mytuturkiu.mytuturkiu;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;                                                                                                                                                                                                                       
import android.widget.Button;
import android.content.Intent;

    public class Menu extends Activity {

      Button btnmodul;

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

          btnmodul = (Button)findViewById(R.id.btnmodul);      
            btnmodul.setOnClickListener(new View.OnClickListener() {

              @Override
              public void onClick(View v) {
          // TODO Auto-generated method stub
              Intent vokal = new Intent(v.getContext(),Modul_Vokal.class);
              startActivity(vokal);
          }
      } );

  }



}
  1. Modul_vokal.java

パッケージcom.mytuturkiu.mytuturkiu;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class Modul_Vokal extends Activity {

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

  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
      // Inflate the menu; this adds items to the action bar if it is present.
      getMenuInflater().inflate(R.menu.modul__vokal, menu);
      return true;
  }

}
  1. AndroidManifest.xml

    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="15" />
    
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.mytuturkiu.mytuturkiu.Menu"
            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.mytuturkiu.mytuturkiu.Modul_Vokal"
            android:label="@string/title_activity_modul__vokal" >
        </activity>
    
    </application>
    

私のアプリの問題は何ですか?...

4

3 に答える 3

1

すべきではありませんv.getContext()...使用する必要がありますgetApplicationContext()..

ビューvは、クリックしたビューです。したがってv.getContext()、ビューが実行されるコンテキストを返します。これが問題です。

アプリケーションのコンテキストを使用する方が優れており、問題は発生しないと思います。

于 2013-06-28T12:34:48.137 に答える
0

クラスに次のような関数を追加できます。

  public class Menu extends Activity {

  Button btnmodul;

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

      btnmodul = (Button)findViewById(R.id.btnmodul);      
      btnmodul.setOnClickListener(new View.OnClickListener() {

          @Override
          public void onClick(View v) {
            // CALL THE FUNCTION
            startMyActivity();
          }
      } );

  }

  private void startMyActivity(){
         Intent vokal = new Intent(this,Modul_Vokal.class);
         startActivity(vokal);
  }

}

関数はアクティビティ コンテキスト内にあり、「this」を Intent コンストラクターに入れると、正しいものになります。

于 2013-06-28T13:12:07.637 に答える