android彈出view
① android 如何動態布局自定義view,不用XML.
可以直接new View來得到View對象來實現代碼布局。以下為示例代碼:
1.絕對布局
AbsoluteLayout abslayout=new AbsoluteLayout (this);
setContentView(abslayout);
Button btn1 = new Button(this);
btn1.setText(」this is a button」);
btn1.setId(1);
AbsoluteLayout.LayoutParams lp1 =
new AbsoluteLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT,
0,100);
abslayout.addView(btn1, lp1);
2.相對布局
RelativeLayout relativeLayout = new RelativeLayout(this);
setContentView(relativeLayout);
AbsoluteLayout abslayout=new AbsoluteLayout (this);
RelativeLayout.LayoutParams lp1 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
lp1.addRule(RelativeLayout.ALIGN_PARENT_TOP);
lp1.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
relativeLayout.addView(abslayout ,lp1);
3.線性布局
LinearLayout ll = new LinearLayout(this);
EditText et = new EditText();
ll.addView(et);
//動態添加布局的方法1. LinearLayout ll = (LinearLayout)this.getLayoutInflater().inflate(R.layout.main1,null); setContentView(ll); LinearLayout ll2 = (LinearLayout)this.getLayoutInflater().inflate(R.layout.main2,ll); //這樣 main2 作為 main1的子布局 加到了 main1的 根節點下
//動態添加布局的方法2 addView. LinearLayout ll = (LinearLayout)this.getLayoutInflater().inflate(R.layout.main1,null); setContentView(ll); LinearLayout ll2 = (LinearLayout)this.getLayoutInflater().inflate(R.layout.main2,null); ll.addView(ll2);
② android 自定義View在彈出的軟鍵盤之上,怎麼做
通過singleTouchView.getViewTreeObserver().addOnGlobalLayoutListener(
new ViewTreeObserver.OnGlobalLayoutListener() {...}計算鍵盤高度,有了鍵盤高度,就可以設置那一行的位置了.
③ 關於Android動態布局添加和刪除View的問題……
java">{
privateLinearLayoutlayout;
privateTextViewtextView;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
layout=newLinearLayout(this);//變數layout是該Activity的成員變數(privateLinearLayoutlayout)
layout.setOrientation(LinearLayout.VERTICAL);//設置layout布局方向為垂直
setContentView(layout);
//接下來向layout中添加TextView
textView=newTextView(this);
textView.setText("ThisIsaTextView");
layout.addView(textView);
}
@Override
protectedvoidonResume(){
//TODOAuto-generatedmethodstub
layout.removeView(textView);
super.onResume();
}
}
但是Activity在啟動的時候調用onCreate()之後也會調用onResume()方法,所以進入程序也看不到textview了
④ Android中如何讓一個EditView被點擊後出現搜索框,搜索框已經實現
Android有自帶的一個控制項AutoCompleteTextView
具體用法如下:
main.xml代碼如下:
<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<AutoCompleteTextView
android:id="@+id/autoCompleteTextView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:completionHint="請選擇你喜歡的歌曲"
android:completionThreshold="1"
android:dropDownHorizontalOffset="20dp"
android:ems="10"
android:text="AutoCompleteTextView">
<requestFocus/>
</AutoCompleteTextView>
</LinearLayout>
java代碼為:
importandroid.app.Activity;
importandroid.graphics.Bitmap;
importandroid.graphics.BitmapFactory;
importandroid.graphics.drawable.BitmapDrawable;
importandroid.os.Bundle;
importandroid.view.MotionEvent;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.view.View.OnTouchListener;
importandroid.widget.ArrayAdapter;
importandroid.widget.AutoCompleteTextView;
importandroid.widget.Button;
importandroid.widget.ImageView;
{
//定義字元串數組作為提示的文本
String[]books=newString[]{"rollen","rollenholt","rollenren","roll"};
@Override
protectedvoidonCreate(BundlesavedInstanceState){
//TODOAuto-generatedmethodstub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//創建一個ArrayAdapter封裝數組
ArrayAdapter<String>av=newArrayAdapter<String>(this,
android.R.layout.simple_dropdown_item_1line,books);
AutoCompleteTextViewauto=(AutoCompleteTextView)findViewById(R.id.autoCompleteTextView1);
auto.setAdapter(av);
}
}
⑤ vivo手機的問題,通知欄里出現Android系統WebView什麼意思
手機自帶瀏覽器更新中,點進去取消更新,一般可以解決。
⑥ android dialog彈出軟鍵盤怎樣不讓view往上推
可以在主配置文件裡面,設置一下這個activity的adjust屬性,有不自動調整的屬性的
⑦ 如何在Android中打開一個窗口
1、 首先在默認工程中新建一個Activity
2、添加動作屬性
在activity_main.xml文件中添加動作動作屬性
android:onClick="OpenNewWindow"
OpenNewWindow是自己取的名字
3、添加動作函數
在MainActivity.java文件中添加:
import android.view.View;
然後在添加:
public void OpenNewWindow(View view){
//打開一個新的窗口
Intent intent = new Intent(this,MainActivity2.class);
startActivity(intent);
Toast.makeText(this, "Toast", Toast.LENGTH_SHORT).show();
}
其中:
Intent intent = new Intent(this,MainActivity2.class);
是定義一個意圖,MainActivity2.class是要打開的窗口
startActivity(intent);
是激活這個意圖
Toast.makeText(this, "Toast", Toast.LENGTH_SHORT).show();
作為調試的時候看的,可以刪除,作用是在屏幕是顯示有沒有啟動這個動作。
請注意,為了讓系統能夠將這個方法與在android:onClick屬性中提供的方法名字匹配,它們的名字必須一致,特別是,這個方法必須滿足以下條件:
公共的
沒有返回值
有一個唯一的視圖(View)參數
使用上述方法添加Activity,在調試的時候需要用Andriod4,在此說明另外一種添加Activity的方法。
雙擊Manifest.xml文件,選中Application選項卡,向下拉,找到Application Nodes,點擊添加,跳出以下對話框:
選擇Activity選項,點擊OK。
然後選中新建的Activity,點擊右邊Name,在彈出的對話框中填入名字就可以了。然後,添加xml文件,名字任意取,當然,最好是同名文件,以後好找,填寫相應文檔既可。
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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity3" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/AText1" />
</RelativeLayout>
其中RelativeLayout說明是相對布局。