Android軟鍵盤研究: 1.利用按鈕彈出軟鍵盤。 2.程式啟動後直接彈出軟鍵盤。
1.由Button的OnClick事件調出軟鍵盤和隱藏軟鍵盤。具體代碼如下:
public class test extends Activity implements OnClickListener{ Button bt; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // setContentView(R.layout.main); LinearLayout l=new LinearLayout(this); LinearLayout.LayoutParams ll=new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT ); bt=new Button(this); bt.setId(123); bt.setText("出來啦!!!"); bt.setOnClickListener(this); /*bt.setOnClickListener(new OnClickListener(){ public void onClick(View v) { InputMethodManager m=(InputMethodManager) bt.getContext() getSystemService(INPUT_METHOD_SERVICE); m.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); } });*/ l.addView(bt, ll); this.setContentView(l); } public void onClick(View v) { Log.e("TAG", "in..................."); InputMethodManager m=(InputMethodManager) bt.getContext() getSystemService(INPUT_METHOD_SERVICE); m.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); // m.showSoftInput(findViewById(123), InputMethodManager.SHOW_FORCED); } }
2.程式啟動後直接彈出軟鍵盤,不能直接在OnCreate中設定,必須等View繪製事件完畢才可以彈出,需要用到Timer輔助實現,代碼如下。
public class chick extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // setContentView(R.layout.main); LinearLayout l=new LinearLayout(this); l.setOrientation(LinearLayout.VERTICAL); LinearLayout.LayoutParams ll=new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT ); bt=new Button(this); bt.setId(123); bt.setText("出來吧!!!"); /*bt.setOnClickListener((OnClickListener) this); bt.setOnClickListener(new OnClickListener(){ public void onClick(View v) { InputMethodManager m = (InputMethodManager)bt.getContext() getSystemService(INPUT_METHOD_SERVICE); m.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); } });*/ Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { Log.e("TAG", "run"); InputMethodManager imm = (InputMethodManager)bt.getContext().getSystemService(INPUT_METHOD_SERVICE); imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); Toast.makeText(chick.this, "show", Toast.LENGTH_SHORT).show(); } }, 1000); l.addView(bt, ll); this.setContentView(l); } Button bt; }
http://dev.10086.cn/cmdn/bbs/viewthread.php?tid=20359