|
还记得早先我们做的记算器的例子吗?当中的验证判断用到了对话框,今天我们来做一个不一样的对话框,要做的这个小例子是一个可供选择效果的对话框即层层迭迭的Alert Dialog;界面方面我们摆放一个Button来做一个按钮事件,解发这个按钮事件后,再通过类似列表项目的方式呈现在Alert Dialog 里面。
功能用途:投票、选择器、遥控器等类型。。。最后返回程序,取得用户选择菜单项目结果。
效果图:
程序中用到的数据资源如下:
<resources>
<string name="hello">K..L.. 好饿呀,要上哪吃饭</string>
<string name="app_name">有选择的对话框</string>
<string name="Choose">按我开始</string>
<string name="Tittle">按我开始选择</string>
<string name="body">你选选择的是:</string>
<string name="Ok">确定</string>
<string-array name="Dialog">
<item>韩国餐厅</item>
<item>一站式餐厅</item>
<item>回家湘</item>
<item>富州酒店</item>
</string-array>
</resources>
功能代码如下:因为使用了选择功能的对话框,可能初期看代码有点复杂,建议利用eclipse的文档大纲先把代码层次分好,有利用观看和理解代码。 import android.app.Activity; import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.*;
public class ChosseDialog extends Activity {
private Button mButton;
private TextView mTextView;
private CharSequence Text;
/** Called when the activity is first created. */
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mButton=(Button)findViewById(R.id.Button01);
mTextView=(TextView)findViewById(R.id.TextView01);
mButton.setText(R.string.Choose);
mTextView.setText("请选择");
mButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
new AlertDialog.Builder(ChosseDialog.this)
.setTitle(R.string.hello)
.setItems(R.array.Dialog, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
CharSequence strDialog=getString(R.string.body);
String[] aryShop=getResources().getStringArray(R.array.Dialog);
Text=strDialog+aryShop[which];
new AlertDialog.Builder(ChosseDialog.this) .setTitle(R.string.Tittle)
.setMessage(Text)
.setNegativeButton(R.string.Ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
mTextView.setText(Text);
}
}).show();
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.dismiss();
}
})
.show();
}
});
}
功能模块到此一个简单的选择功能己经成型 |
|