編輯:關於Android編程
目標效果:


程序運行,顯示圖一的幾個按鈕,點擊按鈕分別顯示圖二到圖六的對話框,點擊對話框的某一項或者按鈕,也會顯示相應的吐司輸出。
1.activity_main.xml頁面存放五個按鈕。
activity_main.xml頁面:
2.新建dialog.xml頁面,作為最後一個自定義對話框的布局頁面。 dialog.xml頁面:
3.MainActivity.java頁面處理對話框的彈出及點擊事件。 MainActivity.java頁面:
package com.example.alertdialog;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener {
private Button btnSure,btnRadio,btnCheck,btnList,btnMy;
private String[] sexList={"男","女"};//單選列表
private String[] likeList={"籃球","足球","打游戲","聽音樂","看電影"};//多選列表
private String[] itemList={"項目經理","策劃","測試","美工","程序員"};//列表
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getId();//獲取控件id
click();//按鈕綁定點擊事件
}
/*獲取控件id*/
private void getId() {
btnSure = (Button) findViewById(R.id.btnSure);
btnRadio=(Button) findViewById(R.id.btnRadio);
btnCheck=(Button) findViewById(R.id.btnCheck);
btnList=(Button) findViewById(R.id.btnList);
btnMy=(Button) findViewById(R.id.btnMy);
}
/*按鈕綁定點擊事件*/
private void click() {
btnSure.setOnClickListener(this);
btnRadio.setOnClickListener(this);
btnCheck.setOnClickListener(this);
btnList.setOnClickListener(this);
btnMy.setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.btnSure:
showDialog1();//確認對話框
break;
case R.id.btnRadio:
showDialog2();//單選對話框
break;
case R.id.btnCheck:
showDialog3();//多選對話框
break;
case R.id.btnList:
showDialog4();
break;
case R.id.btnMy:
showDialog5();
break;
}
}
/*確認對話框*/
private void showDialog1() {
AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setTitle("確認對話框");//設置標題
builder.setIcon(R.drawable.ic_launcher);//設置圖標
builder.setMessage("確認對話框提示內容");//設置內容
/*添加對話框中確定按鈕和點擊事件*/
builder.setPositiveButton("確定",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
Toast.makeText(MainActivity.this,"點擊了確定按鈕",Toast.LENGTH_SHORT).show();
}
});
/*添加對話框中取消按鈕和點擊事件*/
builder.setNegativeButton("取消",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
Toast.makeText(MainActivity.this,"點擊了取消按鈕",Toast.LENGTH_SHORT).show();
}
});
AlertDialog dialog=builder.create();//獲取dialog
dialog.show();//顯示對話框
}
/*單選對話框*/
private void showDialog2() {
AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setTitle("性別");//設置標題
builder.setIcon(R.drawable.ic_launcher);//設置圖標
/*參數一位單選列表文字,參數二為默認第幾個選中(-1默認不選中),參數三是創建監聽器*/
builder.setSingleChoiceItems(sexList,-1,new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String sex=sexList[which];
Toast.makeText(MainActivity.this,"這個人性別為"+sex, Toast.LENGTH_SHORT).show();
}
});
/*添加對話框中取消按鈕點擊事件*/
builder.setNegativeButton("取消",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();//關閉對話框
}
});
AlertDialog dialog=builder.create();//獲取dialog
dialog.show();//顯示對話框
}
/*多選對話框*/
private void showDialog3() {
AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setTitle("愛好");//設置標題
builder.setIcon(R.drawable.ic_launcher);//設置圖標
/*參數同單選對話框一樣,另外第二個參數默認不選中為null,而不是-1*/
builder.setMultiChoiceItems(likeList,null,new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
if(isChecked){
Toast.makeText(MainActivity.this,"我喜歡"+likeList[which],Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(MainActivity.this,"我不喜歡"+likeList[which],Toast.LENGTH_SHORT).show();
}
}
});
/*添加對話框中取消按鈕點擊事件*/
builder.setNegativeButton("取消",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();//關閉對話框
}
});
AlertDialog dialog=builder.create();//獲取dialog
dialog.show();//顯示對話框
}
/*列表對話框*/
private void showDialog4() {
AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setTitle("部門列表");//設置標題
builder.setIcon(R.drawable.ic_launcher);//設置圖標
builder.setItems(itemList,new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this,"我點擊了"+itemList[which],Toast.LENGTH_SHORT).show();
}
});
AlertDialog dialog=builder.create();//獲取dialog
dialog.show();//顯示對話框
}
/*自定義對話框*/
private void showDialog5() {
LayoutInflater inflater=LayoutInflater.from(this);
View view=inflater.inflate(R.layout.dialog,null);//獲取自定義布局
AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setTitle("自定義對話框");//設置標題
builder.setIcon(R.drawable.ic_launcher);//設置圖標
builder.setView(view);//設置自定義樣式布局到對話框
AlertDialog dialog=builder.create();//獲取dialog
dialog.show();//顯示對話框
}
}
4.運行就出現目標效果了。
Android中的軟件安全和逆向分析[二]—apk反破解技術與安全保護機制
在Android應用開發中,當我們開發完軟件之後,我們不希望別人能夠反編譯破解我們的應用程序,不能修改我們的代碼邏輯。實際上,在應用程序的安全機制考慮中,我們希望自己的應
android 特賣列表倒計時卡頓問題
在Android的開發中,我們經常遇見倒計時的操作,通常使用Timer和Handler共同操作來完成。當然也可以使用Android系統控件CountDownTimer,這
Android Fragment動態創建詳解及示例代碼
Android Fragment 動態創建Fragment是activity的界面中的一部分或一種行為。可以把多個Fragment組合到一個activity中來創建一個多
[Android測試] AS+Appium+Java+Win 自動化測試之九:PO模式的實例與ReportNg測試報告
一、介紹准備之前在這篇文章有寫過一個例子,但是這個例子只實現了登錄功能,封裝還是不好的,也不能多個用例執行,現在來用上一篇文章封裝之後的方法來寫實例。封裝和例子代碼已打包