网站开发需要什么专业学生,wordpress静态页面制作,在线做GO分析的网站,吉林省住房建设安厅网站安全管理转#xff1a;http://www.linuxidc.com/Linux/2011-08/41933.htm 在我们使用Dialog时#xff0c;如果需要用到很多自己设计的控件#xff0c;虽然可以让弹出框显示出我们需要的界面#xff0c;但却无法找到地方完成控制代码的编写#xff0c;如何解决这个问题呢,我们可以将…转http://www.linuxidc.com/Linux/2011-08/41933.htm 在我们使用Dialog时如果需要用到很多自己设计的控件虽然可以让弹出框显示出我们需要的界面但却无法找到地方完成控制代码的编写如何解决这个问题呢,我们可以将Activity伪装成Dialog弹出框这样即显示了界面在Activity里写控制代码也是大家的拿手好戏了现在我就来抛砖引玉说说简单的实现吧。 首先问题的关键在MainActivity里的一句 Android:themeandroid:style/Theme.Dialog这就是Activity的Dialog风格。 我们先创建一个main.xml内容如下 ?xml version1.0 encodingutf-8? LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/android android:orientationvertical android:layout_widthfill_parent android:layout_heightfill_parent TextView android:idid/showString android:layout_widthfill_parent android:layout_heightwrap_content android:text在这里显示dialog里输入的数字 / Button android:idid/openButton android:text点此打开Dialog android:layout_widthfill_parent android:layout_heightwrap_content / /LinearLayout 再创建一个textdialog.xml
内容如下?xml version1.0 encodingutf-8? LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/android android:orientationvertical android:layout_widthmatch_parent android:layout_heightmatch_parent EditText android:idid/et android:layout_widthfill_parent android:layout_heightwrap_content / Button android:idid/returnButton android:text请输入字符 android:layout_widthfill_parent android:layout_heightwrap_content / /LinearLayout 现在在MainActivity里写下如下代码都是很基本的代码相信大家都能看懂public class MainActivity extends Activity { private Button openButton; private TextView showString; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); openButton (Button)findViewById(R.id.openButton); showString (TextView)findViewById(R.id.showString); openButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { //这里用到了返回试Activity的基本用法因为和主题无关就不多解释了 Intent i new Intent(MainActivity.this, testDialog.class); startActivityForResult(i, 0); } }); } //利用返回试Activity接收输入的数据并显示证明我们的Dialog式的Activity确实可以完成数据的处理 protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); //取出字符串 Bundle bundle data.getExtras(); String str bundle.getString(str); showString.setText(str); } } 下面是testDialog的编程你可以看出这个Dialog和正常的Activity就没什么区别但它最后
确实可以像Dialog一样弹出ublic class testDialog extends Activity{ private Button returnButton; private EditText inputEditor; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.textdialog); returnButton (Button)findViewById(R.id.returnButton); inputEditor (EditText)findViewById(R.id.et); //和前面一样只是用到了返回式Activity的基本方法虽然这里已经是个Dialog了但却和普通Activity无异 returnButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { String input inputEditor.getText().toString(); Intent i new Intent(testDialog.this, MainActivity.class); Bundle b new Bundle(); b.putString(str, input); i.putExtras(b); testDialog.this.setResult(RESULT_OK, i); testDialog.this.finish(); } }); } } 最后的亮点设置Activity的Dialog风格在
MainActivity里注册下第二个Activity吧别完了风格设置哦activity android:name.testDialog android:label这是一个Activity变成的Dialog android:themeandroid:style/Theme.Dialog /activity 好了,你可以运行一下了如果正常你将看到和我一样的结果