在自定义操作栏上添加点击事件

时间:2012-12-27 12:34:11

标签: android-layout android-actionbar android-theme

我已经为我的应用程序创建了自己的主题。我也自定义了操作栏。现在我想将点击事件添加到操作栏的按钮。我的代码如下。 我的主题是......

<?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>

现在我想为这些按钮添加列表。请告诉我是否有人知道答案。谢谢。如果有人知道答案,请回答这篇文章

1 个答案:

答案 0 :(得分:0)

我在我的布局xml中添加了“android:onClick”attibute,如下所示..

<?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博客。随着你的博客的参考,我尝试了很多东西,最后我得到了解决方案。