Android Action Bar การทำปุ่ม Refresh

การทำปุ่ม Refresh บน Action Bar จะมีด้วยกัน 3 ไฟล์ คือ activity_main.xml, menu.xml และ MainActivity.java


สำหรับใครที่ต้องการ icon สำหรับทำ action bar
สามารถดาว์โหลดได้ที่ : https://developer.android.com/design/downloads/index.html


หมายเหตุ : สำหรับ project เครื่องใดไม่มี folder menu ให้สร้างขึ้นมาใหม่ได้เลย โดยคลิกขวาที่ folder res เลือก new เลือก Folder ครับ พอสร้าง folder menu สร้างแล้วให้สร้างไฟล์ xml ชื่อว่า menu.xml
Example : menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    
    <item
        android:id="@+id/action_refresh"
        android:orderInCategory="100"
        android:showAsAction="always"
        android:icon="@drawable/ic_action_refresh"
        android:title="Refresh"/>
    <item
        android:id="@+id/action_settings"
        android:title="Settings">
    </item>
</menu>
Example : activity_main.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="match_parent"
    android:orientation="vertical" >
</LinearLayout>
Example : MainActivity.java
package com.example.actionbar2;

import android.app.Activity;
import android.os.Bundle;
import android.os.StrictMode;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.Toast;

public class MainActivity extends Activity {
 
 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        if (android.os.Build.VERSION.SDK_INT > 9) {
            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
            StrictMode.setThreadPolicy(policy);
        }
        
    }
 
 public boolean onOptionsItemSelected(MenuItem item) {
     switch (item.getItemId()) {
     
     case R.id.action_refresh:
       Toast.makeText(this, "คุณกำลังกดปุ่ม Refresh อยู่", Toast.LENGTH_SHORT)
           .show();
       break;
     
     case R.id.action_settings:
       Toast.makeText(this, "คุณกำลังกดปุ่ม Settings อยู่", Toast.LENGTH_SHORT)
           .show();
       break;
     default:
       break;
     }

     return true;
   }
 
  public boolean onCreateOptionsMenu(Menu menu) {
      MenuInflater inflater = getMenuInflater();
      inflater.inflate(R.menu.menu, menu);
      return true;
  } 

}
ผลลัพธ์ : 





1 ความคิดเห็น:

  1. ทำยังไงดีค่ะ ปุ่ม refresh ไม่แสดงอยู่บน action bar แต่แสดงอยู่ในตัวเลือกของ ปุ่ม setting แทน

    ตอบลบ