編輯:關於Android編程
RadioButton一定要放在RadioGroup
Checked=“true”當按鈕選中後
勾選事件監聽
OnCheckedChangeListener
練習
石頭,剪刀,布
MainActivity.java
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.TextView;
public class MainActivity extends Activity implements OnClickListener {
TextView tv;
Button btn_begin;
RadioButton radiobtn[]=new RadioButton[3];
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
radiobtn[0] =(RadioButton) findViewById(R.id.radio0);
radiobtn[1]=(RadioButton) findViewById(R.id.radio1);
radiobtn[2]=(RadioButton) findViewById(R.id.radio2);
tv=(TextView) findViewById(R.id.textView1);
btn_begin=(Button) findViewById(R.id.btn_begin);
btn_begin.setOnClickListener(this);
}
@Override
public void onClick(View v) {
//生成隨機數
int random=(int) (Math.random()*10+10);
new AsyncTask<integer, string="">() {
//後台線程
@Override
protected String doInBackground(Integer... params) {
int num=params[0];
int i=0;
while(i<num){ catch="" count="values[0];" int="" integer...="" interruptedexception="" pre="" protected="" return="" string="" try="" void="">
Activity_main.xml
PopupMenu MainActivity.java
import android.app.Activity;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.PopupMenu;
import android.widget.PopupMenu.OnMenuItemClickListener;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//創建PopupMenu
PopupMenu pop=new PopupMenu(MainActivity.this, v);
//解析文件
getMenuInflater().inflate(R.menu.main, pop.getMenu());
//顯示
pop.show();
//監聽PopupMenu菜單
pop.setOnMenuItemClickListener(new OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
int id=item.getItemId();
if(id==R.id.item2){
finish();
}
return false;
}
});
}
});
}
}main.xml
activity_main.xml
OptionMenu
點擊menu按鈕,顯示菜單
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
//添加子菜單
SubMenu sub1=menu.addSubMenu("設置");
sub1.add(1,SET_ITEM1,300,"設置聲音");
sub1.add(1,SET_ITEM2,400,"設置桌面");
SubMenu sub2=menu.addSubMenu("選擇");
sub2.add(1,SET_ITEM3,300,"選擇一");
sub2.add(1,SET_ITEM4,400,"選擇二");
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.item0) {
return true;
}else if(id==R.id.item1){
finish();
return true;
}else if(id==R.id.item2){
return true;
}
return super.onOptionsItemSelected(item);
}
ContextMenu
長按控件,顯示菜單
TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv=(TextView) findViewById(R.id.textView1);
//注冊tv,當用戶長按tv時,觸發上下文菜單
registerForContextMenu(tv);
}
//創建上下文菜單
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
// TODO Auto-generated method stub
super.onCreateContextMenu(menu, v, menuInfo);
menu.addSubMenu(0, 1, 0, "收藏");
menu.addSubMenu(0, 2, 0, "刪除");
Toast.makeText(MainActivity.this, "長按後", Toast.LENGTH_SHORT).show();
}
@Override
public boolean onContextItemSelected(MenuItem item) {
if(item.getItemId() == 1){
Toast.makeText(this, "收藏", Toast.LENGTH_SHORT).show();
}else if(item.getItemId() == 2){
Toast.makeText(this, "刪除", Toast.LENGTH_SHORT).show();
}
return super.onContextItemSelected(item);
}
對話框是在當前界面彈出的一個小窗口,用於顯示重要提示信息,提示用戶輸入信息,確認信息,或者顯示某種狀態,如下載進度,退出提示等等。一般情況下,用戶要與對話框進行交互,然後返回到被遮蓋的界面以繼續運行當前的應用程序。
AlertDialog常用方法
要創建一個AlertDialog就要用到AlertDialog.Builder中的create()方法
1. setTitle:為對話框設置標題
2. setIcon:為對話框設置圖標
3. setMessage:為對話框設置內容
4. setView:為對話框設置自定義樣式
5. setItems:設置對話框要顯示的一個list
6. setMutiChoiceItems:設置對話框顯示一系列的復選框
7. setSingleChoiceItems:設置單選按鈕
8. setNeutralButton:普通按鈕
9. setPositiveButton:確認按鈕
10. setNegativeButton:取消按鈕
ProgressDialog
MainActivity.java
import android.app.Activity;
import android.app.ProgressDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
public class MainActivity extends Activity implements OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.button1).setOnClickListener(this);
findViewById(R.id.button2).setOnClickListener(this);
findViewById(R.id.button3).setOnClickListener(this);
findViewById(R.id.button4).setOnClickListener(this);
findViewById(R.id.button5).setOnClickListener(this);
findViewById(R.id.button6).setOnClickListener(this);
}
@Override
public void onClick(View v) {
int id=v.getId();
if(id==R.id.button1){
//默認對話框
onCreateNormalDialog();
}else if(id==R.id.button2){
//單選按鈕對話框
onCreateSingleChoiceItems();
}else if(id==R.id.button3){
//多選按鈕對話框
onCreateMutiChoiceItems();
}else if(id==R.id.button4){
//列表按鈕對話框
onCreateItems();
}else if(id==R.id.button5){
//自定義對話框
createDialog();
}else if(id==R.id.button6){
CreateProgressDialog();
}
}
private void CreateProgressDialog() {
final ProgressDialog pd=ProgressDialog.show(this, "搜索網絡", "請耐心等待...");
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//結束ProgressDialog
pd.dismiss();
}
}).start();
}
private void createDialog() {
Builder builder=new Builder(this);
builder.setTitle("注冊");
//自定義布局
View view =LayoutInflater.from(this).inflate(R.layout.register, null);
builder.setView(view);
builder.setPositiveButton("確定", null);
builder.setNegativeButton("取消", null);
builder.create();
builder.show();
}
private void onCreateItems() {
Builder b=new Builder(this);
b.setIcon(R.drawable.ic_launcher);
b.setTitle("部門成員列表");
String items[]={"項目經理","策劃","測試","美工","程序員"};
b.setItems(items, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Log.d("Tag", "which="+which);
}
});
b.create();
b.show();
}
private void onCreateMutiChoiceItems() {
Builder b=new Builder(this);
b.setTitle("愛好");
b.setIcon(R.drawable.ic_launcher);
String items[]={"籃球","足球","乒乓球","排球"};
b.setMultiChoiceItems(items, null, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
Log.d("Tag", "which="+which+",isChecked="+isChecked);
}
});
b.create();
b.show();
}
private void onCreateSingleChoiceItems() {
Builder builder =new Builder(this);
builder.setTitle("請選擇性別");
builder.setIcon(R.drawable.ic_launcher);
String items[]={"男","女","保密"};
builder.setSingleChoiceItems(items, 2, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Log.d("Tag", "which="+which);
}
});
builder.create();
builder.show();
}
private void onCreateNormalDialog() {
Builder builder=new Builder(this);
builder.setTitle("退出");
builder.setIcon(R.drawable.ic_launcher);
builder.setMessage("確定要退出嗎?");
builder.setPositiveButton("確定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
builder.setNeutralButton("中間", null);
builder.setNegativeButton("取消", null);
builder.create();
builder.show();
}
}
Register.xml
activity_main.xml
PopupWindow
PopupWindow這個類用來實現一個彈出框,可以使用任意布局View作為其內容,這個彈出框懸浮在當前activity之上。
構造PopupWindow
注意:生成一個PopupWindow必須設置三個條件:View contentView,int Width,int height, 少任意一個就不能彈出PopupWindow。
Android 圖片選擇詳解及實例代碼
Android 圖片選擇可以達到的效果:1.第一個圖片的位置放照相機,點擊打開照相機2.其余的是顯示全部存儲的圖片,點擊一次是查看大圖,長按則是每張圖片出現一
android精確繪制文字位置的方法
android 中使用Canvas的drawText繪制文本的位置,是基於基線的。如下圖: 其中字母Q的小尾巴在橫線下面了。 這裡面的關鍵是Paint.getT
android開發環境搭建中容易遇到的問題和疑惑
1.JDK是向下兼容的,JDK安裝高版本,eclipse、ADT、SDK安裝低本版本是可以的。2.eclipse的版本與ADT、SDK的版本必須是匹配的。無論是低版本的e
詳解Android Checkbox的使用方法
0和1是計算機的基礎,數理邏輯中0和1代表兩種狀態,真與假.0和1看似簡單,其實變化無窮. 今天我就來聊聊android控件中擁有著0和1這種特性的魔力控件checkbo