1

アプリケーション用に独自のテーマを作成し、アクション バーもカスタマイズしました。アクション バーのボタンにクリック イベントを追加したいと思います。私のコードは次のとおりです。私のテーマは..

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="CustomTheme" parent="android:Theme.Holo">
    <!--  <item name="android:background">@drawable/red_dark3</item> -->
     <item name="android:windowBackground">@drawable/red_dark3</item>
      <item name="android:actionBarStyle">@style/Widget.ActionBar</item> 
    <item name="android:actionBarSize">120dp</item>
<!-- <item name="android:customNavigationLayout">@layout/top_bar</item> -->
</style>


<style name="Widget.ActionBar" parent="android:Widget.Holo.ActionBar">
     <!-- <item name="android:displayOptions">showHome|useLogo|showCustom</item>  -->
     <item name="android:displayOptions">showTitle</item> 
    <item name="android:customNavigationLayout">@layout/top_bar</item>
     <item name="android:background">@drawable/red_trans</item>
</style>
</resources>

私の top_bar.xml レイアウトは次のとおりです..

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:id="@+id/top_bar_layout" >

<ImageButton
    android:id="@+id/back_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="7dip"
   android:background="@drawable/back" />

<ImageButton
    android:id="@+id/home_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
     android:layout_marginLeft="10dip"
    android:background="@drawable/home" />
</LinearLayout>

今、私はこれらのボタンにリスナーを追加したいと思っています.誰かが答えを知っているなら教えてください.

4

1 に答える 1

0

次のように、レイアウトxmlに「android:onClick」属性を追加しました。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:id="@+id/top_bar_layout" >

<ImageButton
    android:id="@+id/back_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="7dip"
    android:clickable="true"
    android:onClick="backButtonOnClick"
    android:background="@drawable/back" />

<ImageButton
    android:id="@+id/home_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
     android:layout_marginLeft="10dip"
     android:onClick="homeButtonOnClick"
    android:background="@drawable/home"
    android:clickable="true"  />
</LinearLayout>

そして私の活動は次のとおりです。

package com.example.android;
import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.LinearLayout;

public class HelloActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
      }

    public void backButtonOnClick(View v) {
        Log.d(TAG, "backButtonOnClick");
        onBackPressed();// handle your click
    }

    public void homeButtonOnClick(View v) {
        Log.d(TAG, "homeButtonOnClick");// handle your click
        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_MAIN);
        intent.addCategory(Intent.CATEGORY_HOME);
        startActivity(intent);
    }
   }

Stackoverflowブログのおかげで、私の問題はすべて解決しました。あなたのブログを参照して、私は多くのことを試し、最終的に解決策を得ました。

于 2012-12-28T07:23:54.253 に答える