1

私はアンドロイドプログラミングで完全に環境に優しいです。「スプラッシュ」画面を作成したかっただけです。この画面は、数秒後にメインアクティビティに変わります。それは私が使用したコードです:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    TextView txt = (TextView) findViewById(R.id.diavlo_font);  
    Typeface font = Typeface.createFromAsset(getAssets(), "DiavloBlack-Regular.ttf");  
    txt.setTypeface(font);  

    final Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
      public void run() {
        //Do something after time
          Intent intent = new Intent(MainActivity.this, SecondActivity.class);

        startActivity(intent);
      }
    }, 5000);

}

問題は、別のアクティビティを呼び出そうとしているときだと確信しています。実は「ボタンを押してから」しか使っていなかったのですが、今は動かせません:/申し訳ありませんが、これはばかげて簡単なことかもしれませんが、数日間この問題を解決しようとしていて、残念ながら見つけましたなし。それを解決するためのヒントをいただければ幸いです。PS私の英語でごめんなさい:)

編集:ログを追加しなかったことをお詫びします、それらが正しいことを願っています。

09-20 17:49:10.740: E/AndroidRuntime(715): FATAL EXCEPTION: main
09-20 17:49:10.740: E/AndroidRuntime(715): java.lang.RuntimeException: Unable to start        activity ComponentInfo{com.example.czolgi.ii.ws/com.example.czolgi.ii.ws.SecondActivity}: java.lang.NullPointerException
09-20 17:49:10.740: E/AndroidRuntime(715):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
09-20 17:49:10.740: E/AndroidRuntime(715):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
09-20 17:49:10.740: E/AndroidRuntime(715):  at android.app.ActivityThread.access$600(ActivityThread.java:130)
09-20 17:49:10.740: E/AndroidRuntime(715):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
09-20 17:49:10.740: E/AndroidRuntime(715):  at android.os.Handler.dispatchMessage(Handler.java:99)
09-20 17:49:10.740: E/AndroidRuntime(715):  at android.os.Looper.loop(Looper.java:137)
09-20 17:49:10.740: E/AndroidRuntime(715):  at android.app.ActivityThread.main(ActivityThread.java:4745)
09-20 17:49:10.740: E/AndroidRuntime(715):  at java.lang.reflect.Method.invokeNative(Native Method)
09-20 17:49:10.740: E/AndroidRuntime(715):  at java.lang.reflect.Method.invoke(Method.java:511)
09-20 17:49:10.740: E/AndroidRuntime(715):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
09-20 17:49:10.740: E/AndroidRuntime(715):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
09-20 17:49:10.740: E/AndroidRuntime(715):  at dalvik.system.NativeStart.main(Native Method)
09-20 17:49:10.740: E/AndroidRuntime(715): Caused by: java.lang.NullPointerException
09-20 17:49:10.740: E/AndroidRuntime(715):  at com.example.czolgi.ii.ws.SecondActivity.onCreate(SecondActivity.java:15)
09-20 17:49:10.740: E/AndroidRuntime(715):  at android.app.Activity.performCreate(Activity.java:5008)
09-20 17:49:10.740: E/AndroidRuntime(715):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
09-20 17:49:10.740: E/AndroidRuntime(715):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
09-20 17:49:10.740: E/AndroidRuntime(715):  ... 11 more

SecondActivityの追加:

package com.example.czolgi.ii.ws;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v4.app.NavUtils;

public class SecondActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);
    getActionBar().setDisplayHomeAsUpEnabled(true);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_second, menu);
    return true;
}


@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            NavUtils.navigateUpFromSameTask(this);
            return true;
    }
    return super.onOptionsItemSelected(item);
}

}

SULUTION:

したがって、この問題の解決策は、// getActionBar()。setDisplayHomeAsUpEnabled(true);の前に追加することです。または単にそれをereseします。「@android:style / Theme.NoTitleBar.Fullscreen」を設定してアクションバーを表示しようとしたため、2番目のアクティビティは機能しませんでした。したがって、これらの行を削除するか、スタイルを全画面表示に変更する必要はありません。

4

1 に答える 1

0

エラーは次の行にあります。

getActionBar().setDisplayHomeAsUpEnabled(true);

私の推測では、 ActionBarが存在しないAndroidバージョン、つまりAPI11より下のバージョンでアプリを実行しようとしています。

getActionBar()を試みる前に、onCreate()に以下を追加することもできます。

getWindow().requestFeature(Window.FEATURE_ACTION_BAR);

それでも機能しない場合は、アプリが使用しているテーマにActionBarが含まれていません。この問題を特定して修正する方法については、この巨大なブログ投稿があります

Honeycomb(API 11)の下のアプリでActionBarを使用する場合は、この機能を提供できるActionBarSherlockの使用を検討する必要があります。

于 2012-09-20T18:41:30.057 に答える