0

私はActionBarSherlockを使用して、AndroidHoneyCombのプレバージョンとポストバージョンの両方にActionBarを実装しています。私の問題は、Androidバージョン4.0.4で左上のアイコンをタップしても、応答しなかったことです。これが私が今までやってきたことです:

1)すべてのスタイルフォルダー "values / styles.xml"、 "values-v11 / styles.xml"& "values-v14 / styles.xml"; 私は次のことをしました

<style name="ActivityTheme" parent="@style/AppTheme">
        <item name="actionBarStyle">@style/ActivityActionBarStyle</item>
        <item name="android:actionBarStyle">@style/ActivityActionBarStyle</item>
    </style>
<style name="ActivityActionBarStyle" parent="ommaralrd_transparent_ActionBar">
        <item name="displayOptions">showHome|showTitle|homeAsUp</item>
        <item name="android:displayOptions">showHome|showTitle|homeAsUp</item>
    </style>

アプリケーションアクティビティ(上向き矢印がないはずなのでホームアクティビティを除く)では、次のことを行いました。

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
setContentView(R.layout.activity_inner);
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB){
            getSupportActionBar().setDisplayHomeAsUpEnabled(false);
        }
.....rest of my code ...
}


@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        Intent intent;
        switch (item.getItemId()) {
        case android.R.id.home:

            /*app icon in action bar clicked; go home*/
            intent = new Intent(this, MainActivity.class);

            /* With this flag, if the activity you're starting already exists in the current task, 
             * then all activities on top of it are destroyed and it is brought to the front.
             * you should usually not create a new instance of the home activity. Otherwise, 
             * you might end up with a long stack of activities in the current task with multiple 
             * instances of the home activity.*/
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(intent);
            break;
        default:
            return super.onOptionsItemSelected(item);
        }
        return true;
    }

マニフェストファイルで、すべてのアクティビティにそれぞれのスタイルを適用していることを確認します(上矢印がないはずなのでメインアクティビティを除く)

<activity
            android:name="com.andrid.example.TestActivity"
            android:label="@string/app_name"
            android:theme="@style/ActivityTheme" >
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value="com.andrid.example.MainActivity" />
        </activity>

そのため、Pre-HoneyCombバージョンでアプリケーションをテストすると、上向き矢印が表示されません。アイコンをタップして上に移動すると、ABSがまったく応答しないためです。しかし、エミュレーターの4.1のようなPost-HoneyCombバージョンでアプリケーションを試したところ、上矢印が表示され、それをタップすると、期待どおりに機能し、正常に上に移動します。私の問題は、Android 4.0.4エミュレーターでアプリケーションを試したときに、上矢印が期待どおりに表示されるのに、タップしても何も起こらないことです。

4

1 に答える 1

0

修正を見つけました:xml属性:homeAsUpを使用してIcon HomeをUpとして設定することは避けてください。代わりに、次のようにsetDisplayHomeAsUpEnabled(true)を明示的に使用する必要があります。

すべてのスタイルフォルダー"values/ styles.xml"、 "values-v11 / styles.xml"& "values-v14 / styles.xml"; 私は次のことをしました

<style name="ActivityTheme" parent="@style/AppTheme">
        <item name="actionBarStyle">@style/ActivityActionBarStyle</item>
        <item name="android:actionBarStyle">@style/ActivityActionBarStyle</item>
    </style>
<style name="ActivityActionBarStyle" parent="ommaralrd_transparent_ActionBar">
        <item name="displayOptions">showHome|showTitle</item>
        <item name="android:displayOptions">showHome|showTitle</item>
    </style>

各アクティビティ(メインアクティビティを除く):

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){
            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        }
于 2013-02-10T16:39:41.123 に答える