AlertDialog编辑框无法调出输入法、锁定Activity方向、自定义进度条的WebView基础使用
来源:互联网 发布:雅思7分有多难 知乎 编辑:程序博客网 时间:2024/05/24 01:45
1.安卓系统的AlertDialog中点击EditText无法调出系统输入法软键盘的貌似,如下写即可调出
AlertDialog.Builder mBuilder = new AlertDialog.Builder(MainActivity.this);
LayoutInflater li = LayoutInflater.from(MainActivity.this);
View dialogView = li.inflate(R.layout.dialog_login, null);
final TextView username = (TextView) dialogView.findViewById(R.id.dialoglogin_username);
Button login = (Button) dialogView.findViewById(R.id.dialoglogin_btn_yes);
Button cancel = (Button) dialogView.findViewById(R.id.dialoglogin_btn_no);
final AlertDialog dialog= mBuilder.create();
dialog.setCancelable(false);
dialog.setView(new EditText(MainActivity.this));//只有添加这句话才能让AlertDialog能够调用输入法
dialog.show();
dialog.setContentView(dialogView);,
2.锁定Activity为水平方向,防止屏幕旋转。在AndroidManifest.xml中相应的Activity中配置: android:screenOrientation="portrait"
同时,安卓默认的屏幕旋转会销毁当前Activity再重新onCreate(),所以当前Activity变量都会被重置,为了不重新oncreate()需要在activity配置文件中配置 android:configChanges="keyboardHidden|orientation|screenSize",这样当屏幕旋转的时候只会触发以下方法
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
//判断当前是横屏还是竖屏显示不同的布局
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT)
{//竖屏
menuGrid.setNumColumns(2);
} else
{
// 横屏
menuGrid.setNumColumns(4);
}
}
3.带自定义进度条的WebView展示html内容
Activity代码如下:
public class WebBrowserActivity extends Activity {
private WebView wv_energy_baidu;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.wv_baidu);
init();
}
private void init(){
String home_url="http://www.baidu.com";
Intent i = getIntent();
if(i.hasExtra("url"))home_url= i.getExtras().getString("url");
final TextView webtitle = (TextView) findViewById(R.id.webbrowser_webtitle);
LinearLayout backLayout = (LinearLayout) findViewById(R.id.webbrowser_backicon);
final ProgressBar pb = (ProgressBar) findViewById(R.id.webbrowser_myProgressBar);
pb.setMax(100);
wv_energy_baidu = (WebView) findViewById(R.id.wv_energy_baidu);
backLayout.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
//WebView加载web资源
wv_energy_baidu.loadUrl(home_url);
//覆盖WebView默认使用第三方或系统默认浏览器打开网页的行为,使网页用WebView打开
wv_energy_baidu.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
//返回值是true的时候控制去WebView打开,为false调用系统浏览器或第三方浏览器
view.loadUrl(url);
return true;
}
});
wv_energy_baidu.setWebChromeClient(new WebChromeClient(){
@Override
public void onReceivedTitle(WebView view, String title) {
// setTitle(title);
webtitle.setText(title);
}
@Override
public void onProgressChanged(WebView view, int newProgress) {
if(newProgress<100){
if(pb.getVisibility()==View.GONE)
pb.setVisibility(View.VISIBLE);
pb.setProgress(newProgress);
}else{
pb.setProgress(100);
Animation animation=AnimationUtils.loadAnimation(WebBrowserActivity.this, R.anim.webprogress_animation);
// 运行动画 animation
pb.startAnimation(animation);
// 将 spinner 的可见性设置为不可见状态
pb.setVisibility(View.INVISIBLE);
}
super.onProgressChanged(view, newProgress);
}
});
}
private void initData() {
WebSettings settings = wv_energy_baidu.getSettings();
settings.setJavaScriptEnabled(true);
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if(keyCode==KeyEvent.KEYCODE_BACK)
{
if(wv_energy_baidu.canGoBack())
{
wv_energy_baidu.goBack();//返回上一页面
return true;
}
else
{
finish();
// System.exit(0);//退出程序
}
}
return super.onKeyDown(keyCode, event);
}
}
wv.xml文件内容如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/main_bg"
>
<RelativeLayout
android:id="@+id/webbrowser_top"
android:layout_width="fill_parent"
android:layout_height="45dp"
android:background="#00a9ff"
>
<LinearLayout
android:id="@+id/webbrowser_backicon"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:orientation="horizontal"
android:clickable="true"
android:layout_centerVertical="true"
android:gravity="center_vertical"
android:layout_alignParentLeft="true"
>
<ImageButton
android:layout_marginLeft="5dp"
android:layout_width="26dp"
android:layout_height="match_parent"
android:background="@null"
android:src="@drawable/backarrow"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="关闭"
android:textColor="#FFFFFF"
android:textSize="17sp"
/>
</LinearLayout>
<TextView
android:id="@+id/webbrowser_webtitle"
android:layout_width="wrap_content"
android:layout_toRightOf="@id/webbrowser_backicon"
android:layout_marginLeft="20dp"
android:layout_centerVertical="true"
android:layout_height="wrap_content"
android:ellipsize="end"
android:singleLine="true"
android:textColor="#FFFFFF"
android:textSize="18sp"
/>
</RelativeLayout>
<ProgressBar
style="?android:attr/progressBarStyleHorizontal"
android:id="@+id/webbrowser_myProgressBar"
android:layout_below="@id/webbrowser_top"
android:layout_width="match_parent"
android:progressDrawable="@drawable/mystle_progress"
android:layout_height="2dp"
/>
<WebView
android:id="@+id/wv_energy_baidu"
android:layout_below="@id/webbrowser_myProgressBar"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</RelativeLayout>
mystyle_progress.xml文件内容如下:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@android:id/background">
<shape>
<corners android:radius="5dip" />
<gradient
android:angle="0"
android:centerY="0.75"
android:centerColor="#ffFFFFFF"
android:endColor="#ffFFFFFF"
android:startColor="#ffFFFFFF"
/>
<!--
android:centerColor="#ff5a5d5a"
android:endColor="#ff747674"
android:startColor="#ff9d9e9d" -->
</shape>
</item>
<item android:id="@android:id/secondaryProgress">
<clip>
<shape>
<corners android:radius="5dip" />
<gradient
android:angle="0"
android:centerY="0.75"
android:centerColor="#ffFFFFFF"
android:endColor="#ffFFFFFF"
android:startColor="#ffFFFFFF" />
<!-- android:centerColor="#80ffb600"
android:endColor="#a0ffcb00"
android:startColor="#80ffd300" -->
</shape>
</clip>
</item>
<item android:id="@android:id/progress">
<clip>
<shape>
<corners android:radius="5dip" />
<gradient
android:angle="0"
android:endColor="#ffFFFFFF"
android:startColor="#ff00CD00"
/>
<!-- android:endColor="#8000ff00"
android:startColor="#80ff0000" -->
</shape>
</clip>
</item>
</layer-list>
- AlertDialog编辑框无法调出输入法、锁定Activity方向、自定义进度条的WebView基础使用
- 解决了AlertDialog中的EditText无法调出输入法的问题
- android AlertDialog中EditText无法调出输入法的问题
- EditText的输入法显示、隐藏和AlertDialog中的EditText无法调出输入法的问题
- Android开发 解决AlertDialog中的EditText无法调出输入法的问题
- Android开发 解决AlertDialog中的EditText无法调出输入法的问题
- Android开发 解决AlertDialog中的EditText无法调出输入法的问题 .
- Android开发 解决AlertDialog中的EditText无法调出输入法的问题
- 锁定Activity方向
- 自定义带进度条的WebView
- 使用SVN的“锁定-编辑-锁定”模型
- 自定义AlertDialog弹不出输入法的问题
- android自定义AlertDialog对话框中的EditText无法弹出输入法解决方案
- 焦点在网页中的编辑框,点击遥控器的DPAD_CENTER键无法调出软键盘
- symbian下编辑框无法弹出输入法窗口的解决方法
- 在输入时无法调出输入法
- Android AlertDialog 无法弹出输入法
- 使用自定义视图的AlertDialog
- HDU1754线段树
- 排版题 3
- mysql根据select查询结果 循环更改
- ionic 开发小问题集锦
- android-Building a Notification,Preserving Navigation when Starting an Activity
- AlertDialog编辑框无法调出输入法、锁定Activity方向、自定义进度条的WebView基础使用
- 一个对象怎么调用另一个对象, 打jar包,到底调用哪一个方法, 匿名对象, 空对象
- POJ2503字典树
- 使用Excel画甘特图
- CComPtr用法(转)
- AFNetworking-2.0 使用方法
- 周末私家菜谱
- hdoj 1829 A Bug's Life
- C语言最小生成树prim算法(USACO3.1)