android中Dialog對話框獲取文本文字,只需要使用editor的getText方法就可以獲得,示例如下:
final EditText et = new EditText(this);
et.setText(mSharedPreferences.getString("ipadd", "127.0.0.1"));
//獲取ip而已,不用在乎
new AlertDialog.Builder(this).setTitle("請輸入IP地址")
.setIcon(android.R.drawable.ic_dialog_info).setView(et)
.setPositiveButton("確定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
//數據獲取
//Toast.makeText(TestTabActivity.this, et.getText().toString(),
// Toast.LENGTH_LONG).show();
mEditor.putString("ipadd", et.getText().toString());
//關鍵在這兒,獲取輸入框的數據,原來很簡單!!
mEditor.commit();
}
}).setNegativeButton("取消", null).show();
1、View注意設置成final類型如final View layout=。。。
2、獲取文本框對象時候格式EditText e = (EditText)layout.findViewById(R.id);//這里記好了那個layout 是上面final View對象
不注意上面的你就無法獲得對話框中的文本了哦!
private void getWifiInfo() {
// TODO Auto-generated method stub
/**
* 當按返回鍵時的提示對話框,采用默認樣式
*/
LayoutInflater inflater=getLayoutInflater();
final View layout=inflater.inflate(R.layout.dialog, (ViewGroup)findViewById(R.id.dialog));
new AlertDialog.Builder(this).
setTitle("自定義布局").
setView(layout).
setPositiveButton("確定",
new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
EditText et1 = (EditText)layout.findViewById(R.id.wifiname);
EditText et2 =(EditText)layout.findViewById(R.id.wifipassword);
wifiname = et1.getText().toString();
wifipassword=et2.getText().toString();
}})
.setNegativeButton("取消", null).show();
}
實例:
package com.example.mytest;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getdialog();
}
private void getdialog(){
final EditText et=new EditText(this);
new AlertDialog.Builder(this).setTitle("請輸入面積").setView(et).
setPositiveButton("確定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1){
String size=et.getText().toString();
Log.i("size",size);
}
}).setNegativeButton("取消",null).show();
}
}