Ⅰ 在android中怎樣給整個頁面設置監聽事件
您可以類似這樣,先實例化子頁面中的Button控制項,然後將實例化後的控制項綁定監聽事件 View view=LayoutInflater.from(context).inflate(R.layout.abc_action_bar_view_list_nav_layout,null); Button button= (Button) view.findViewById(R.id.action_bar); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //寫上點擊後要執行的事件 } }); 當然了,您要在不同頁面實現不同的功能的話,您可以將以上代碼寫在viewPager.setOnPageChangeListener的滾動回調方法當中進行頁面滾動的判斷,從而執行不同的點擊事件。希望能幫到您,如果還有什麼問題,歡迎您繼續追問。謝謝。
Ⅱ Android 監聽復制、剪切、粘貼事件,粘貼後直接進行介面請求
在我們的項目開發中,有時會遇到這樣的需求:當用戶在輸入框中進行了粘貼操作,直接就使用粘貼的內容進行服務端介面的請求,不需要用戶再點擊確認後才去進行介面請求。
對於這種情況,可以想到兩種方式實現:
其實以上兩種業務實現方式都涉及到了監聽復制、剪切、粘貼事件。
1 - 通過剪切板監聽。
2 - 通過自定義EditText,重寫onTextContextMenuItem() 方法實現監聽。
剪切板的實現其實在官方文檔中找到相應的內容。
我這里只監聽了粘貼事件。如果有需要,可以自行拓展回調介面。
通過這種方法監聽有點要注意,那就是你在回調中是獲取不到復制、剪切、粘貼的文本內容的。想要獲取到復制、剪切的文本還是需要通過監聽剪切板去獲取。
粘貼的內容的獲取 其實可以在Activity中添加個標記,在TextWatcher中判斷此標記。這樣可以間接的獲取到粘貼內容。因為在onTextContextMenuItem(),自定義的回調先於super.onTextContextMenuItem(id)執行。這只加單寫了EditText中內容為空的情況,如果有內容,那麼自己去進行字元串的邏輯操作吧。我這里就不寫了。 實測有效哦。
OK,本章內容到此就結束了。如果大家有什麼更好的方法,或者覺得我的方法有啥可以改進的地方,歡迎評論留言哦。
Ⅲ android里能為下拉菜單設置監聽事件么
Spinner組件的主要功能是用於進行下拉列表顯示的功能,當用戶選中下拉列表中的某個選項之後可以使用Spinner類中提供的setOnItemClickListener()方法進行監聽。
下拉菜單監聽範例:
packagecom.richard.onitemselectedlistener;
importandroid.os.Bundle;
importandroid.app.Activity;
importandroid.view.Menu;
importandroid.view.View;
importandroid.widget.AdapterView;
importandroid.widget.AdapterView.OnItemSelectedListener;
importandroid.widget.ArrayAdapter;
importandroid.widget.Spinner;
{
privateSpinnercity=null;//定義下拉列表框
privateSpinnerarea=null;//定義下拉列表框
privateString[][]areaData=newString[][]{//定義聯動菜單項
{"東城","西城","朝陽","大興","平谷"},//第一級子選項
{"黃浦","楊浦","閔行"},//第二級子選項
{"廣州"}};//第三級子選項
privateArrayAdapter<CharSequence>adapterArea=null;//下拉列表內容適配器
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);//父類onCreate()
super.setContentView(R.layout.activity_main);//調用布局管理器
this.city=(Spinner)super.findViewById(R.id.city);//取得組件
this.area=(Spinner)super.findViewById(R.id.area);//取得組件
this.city.setOnItemSelectedListener(
newOnItemSelectedListenerImpl());//設置監聽器
}
{
@Override
publicvoidonItemSelected(AdapterView<?>adapterView,Viewview,
intposition,longid){//選項選中時觸發
MainActivity.this.adapterArea=newArrayAdapter<CharSequence>(
MainActivity.this,
android.R.layout.simple_spinner_item,
MainActivity.this.areaData[position]);//實例化列表項
MainActivity.this.adapterArea.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item);//設置下拉列表顯示風格
MainActivity.this.area
.setAdapter(MainActivity.this.adapterArea);//設置數據
}
@Override
publicvoidonNothingSelected(AdapterView<?>adapterView){//沒有選項時觸發
}
}
@Override
(Menumenu){
//Inflatethemenu;.
getMenuInflater().inflate(R.menu.main,menu);
returntrue;
}
}
Ⅳ 怎麼樣才能讓android中所彈出的對話框顯示出復選框所選擇的內容
AlertDialog.Builder有現成的API可以實現顯示復選框的內容。
1.創建AlertDialog.Builder並設置數據源
AlertDialog.Builder builder = new Builder(context);
builder.setTitle("復選框"); //設置對話框標題
builder.setIcon(android.R.drawable.ic_menu_more); //設置對話框標題前的圖標
final String[] data = getResources().getStringArray(R.array.radio); //通過resources 得到strings.xml中的字元串數組
boolean[] state = new boolean[data.length];
for(int i=0; i<data.length; i++){
state[i] = sboolean.get(i); //將狀態集合中的數據取出來,下次選擇時候會默認選中
}
2.注冊點擊事件,並記錄復選的數據
/*
* 第一個參數是,數據原,可以是數組,也可以傳strings.xml那的字元串ID,但是建議用數組,因為多選監聽返回的是數組的標下
* 第二個參數是,默認的選中位置,是個boolean數組,對應item的位置
* 第三個是列表點擊監聽事件
*/
builder.setMultiChoiceItems(R.array.radio, state, new DialogInterface.OnMultiChoiceClickListener() {//注冊單選擇監聽事件
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
if(isChecked){
Toast.makeText(context,"你選擇了: " + data[which], Toast.LENGTH_SHORT).show();
checkBoxData.add(data[which]); //選擇的時候要保存起來
}else{
Toast.makeText(context,"你取消了: " + data[which], Toast.LENGTH_SHORT).show();
checkBoxData.remove(data[which]); //取消選中的時候要刪除掉
}
sboolean.put(which, isChecked); //每次選擇都要記錄下這個item的狀態
}
});
3.增加確定和取消按鍵
builder.setPositiveButton("確認", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(context, "你點了確定,選擇的是: " + checkBoxData.toString(), Toast.LENGTH_SHORT).show();
}
});
4.設置dialog的相關參數,並彈出
builder.setNegativeButton("取消", null); //取消不做任何處理
builder.setCancelable(true); //設置按鈕是否可以按返回鍵取消,false則不可以取消
AlertDialog dialog = builder.create(); //創建對話框
dialog.setCanceledOnTouchOutside(true); //設置彈出框失去焦點是否隱藏,即點擊屏蔽其它地方是否隱藏
dialog.show();