如何在android中在弹出popupwindow后继续键入edittext //导入 公共类MainActivity扩展活动实现OnCheckedChangeListener { 整数计数=0,整数。。。。。。; 文本视图文本视图。。。; int ite
如何在android中在弹出popupwindow后继续键入edittext如何在android中在弹出popupwindow后继续键入edittext //导入 公共类MainActivity扩展活动实现OnCheckedChangeListener { 整数计数=0,整数。。。。。。; 文本视图文本视图。。。; int ite,android,android-edittext,popupwindow,Android,Android Edittext,Popupwindow,如何在android中在弹出popupwindow后继续键入edittext //导入 公共类MainActivity扩展活动实现OnCheckedChangeListener { 整数计数=0,整数。。。。。。; 文本视图文本视图。。。; int itemCode,月; ArrayList Name=新的ArrayList(); 警报对话框警报对话框; 共享参考sp; 编辑文本代码; 编辑; RadioButton RbForItemCode、RbForItemName; 放射组RgForIt
//导入
公共类MainActivity扩展活动实现OnCheckedChangeListener
{
整数计数=0,整数。。。。。。;
文本视图文本视图。。。;
int itemCode,月;
ArrayList Name=新的ArrayList();
警报对话框警报对话框;
共享参考sp;
编辑文本代码;
编辑;
RadioButton RbForItemCode、RbForItemName;
放射组RgForItemVsName;
PopupWindow popupWindowItems;
字符串popUpItems[];
ProgressDialog;
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
//共享优先权
sp=this.getSharedReferences(“MySharedPrefsFile”,Context.MODE\u PRIVATE);
editor=sp.edit();
intForShardPref=sp.getInt(“新安装”,1);//获取整数(1表示否)
如果(IntForSharedPref==1){
Intent Intent=新Intent(这是Verify.class);
startActivityForResult(意向,1);
}
否则{
//无所事事
}
EtItemCode.addTextChangedListener(新的TextWatcher(){
公共无效后文本已更改(可编辑){
ToCheckItemCodeOfEdittext=EtItemCode.getEditableText().toString();
DatabaseHandler db=新的DatabaseHandler(MainActivity.this);
List Items=db.getAllItemWithSubString(ToCheckItemCodeOfEdittext、ItemNumber或NameSelectedRadioButtonOptions);
if(EtItemCode.length()>2){
if(EtItemCode.length()>3 | | flagForPopUpWindow>EtItemCode.length())
popupWindowItems.disclose();
Name.clear();
对于(项目cn:项目){
if(RbForItemCode.isChecked()==true){
Name.add(Integer.toString(cn.getItemNumber());
}
否则{
Name.add(cn.getName());
}
}
popUpItems=新字符串[Name.size()];
名称。toArray(popUpItems);
popupWindowItems=popupWindowItems();
***popupWindowItems.setFocusable(false)***
弹出窗口显示下拉列表(findViewById(R.id.et_项目代码),-5,0);
}
否则{
如果(flagForPopUpWindow==3&&EtiItemCode.length()==2)
popupWindowItems.disclose();
}
flagForPopUpWindow=EtItemCode.length();
}
public void onTextChanged(字符序列、int start、int before、int count){
}
更改前文本之前的公共void(字符序列s、int start、int count、int after){
}
});
}
私有void init(){
//TODO自动生成的方法存根
//一些代码
}
公共弹出窗口弹出窗口(){
//初始化弹出窗口类型
PopupWindow PopupWindow=新的PopupWindow(此);
//下拉列表是一个列表视图
ListView listViewItems=新建ListView(此);
//设置适配器并传递弹出窗口内容
ArrayAdapter适配器=新的ArrayAdapter(
此,//活动的上下文
android.R.layout.simple\u list\u item\u 1,//使用的布局
名称){//要显示的项目
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
//为列表中的每个项目设置ID和文本
String item=getItem(位置);
字符串文本=item.toString();
//列表项的视觉设置
TextView listItem=新的TextView(MainActivity.this);
listItem.setText(文本);
//setTag(id);
listItem.SettexSize(22);
setPadding(10,10,10,10);
listItem.setTextColor(Color.WHITE);
返回列表项;
}
};
setAdapter(适配器);
//设置项目单击侦听器
setOnItemClickListener(新项目DropDownOnItemClickListener());
//其他一些视觉设置
//popupWindow.setFocusable(真);
setWidth(EtItemCode.getWidth());
//popupWindow.setHeight(WindowManager.LayoutParams.WRAP_内容);
Rect r=新的Rect();
View rootview=this.getWindow().getDecorView();//this=activity
rootview.getWindowVisibleDisplayFrame(r);
setHeight(r.height()-3*EtItemCode.getHeight());
//将列表视图设置为弹出窗口内容
setContentView(listViewItems);
返回弹出窗口;
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
MenuInflater放大=getMenuInflater();
放大。充气(右菜单。冷却菜单,菜单);
返回true;
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
开关(item.getItemId()){
案例R.id.电话号码:
意图p=新意图(MainActivity.this,PhoneNumber.class);
星形触觉(p);
打破
案例R.id.exit:
完成();
打破
}
返回false;
}
@凌驾
ActivityResult上的公共void(int请求代码、int结果代码、意图数据){
//TODO自动生成的方法存根
super.onActivityResult(
//imports
public class MainActivity extends Activity implements OnCheckedChangeListener
{
int count=0,ints......;
TextView textviews...;
int itemCode,month;
ArrayList<String> Name = new ArrayList<String>();
AlertDialog alertDialog ;
SharedPreferences sp;
EditText EtItemCode;
Editor editor ;
RadioButton RbForItemCode,RbForItemName;
RadioGroup RgForItemVsName;
PopupWindow popupWindowItems;
String popUpItems[];
ProgressDialog pDialog;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
//shared prefs
sp = this.getSharedPreferences("MySharedPrefsFile", Context.MODE_PRIVATE);
editor = sp.edit();
intForShardPref= sp.getInt("NEW_INSTALLATION",1); // getting Integer(1 is for no)
if(intForShardPref==1){
Intent intent = new Intent(this,Verify.class);
startActivityForResult(intent, 1);
}
else{
//do nothing
}
EtItemCode.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
ToCheckItemCodeOfEdittext = EtItemCode.getEditableText().toString();
DatabaseHandler db=new DatabaseHandler(MainActivity.this);
List<Item> Items = db.getAllItemWithSubString(ToCheckItemCodeOfEdittext,itemNumberOrNameSelectedInRadioButtonOptions);
if(EtItemCode.length()>2){
if(EtItemCode.length()>3||flagForPopUpWindow>EtItemCode.length())
popupWindowItems.dismiss();
Name.clear();
for (Item cn : Items) {
if(RbForItemCode.isChecked()==true){
Name.add(Integer.toString(cn.getItemNumber()));
}
else{
Name.add(cn.getName());
}
}
popUpItems = new String[Name.size()];
Name.toArray(popUpItems);
popupWindowItems = popupWindowItems();
***popupWindowItems.setFocusable(false);***
popupWindowItems.showAsDropDown(findViewById(R.id.et_item_code), -5, 0);
}
else{
if(flagForPopUpWindow==3&&EtItemCode.length()==2)
popupWindowItems.dismiss();
}
flagForPopUpWindow=EtItemCode.length();
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
});
}
private void init() {
// TODO Auto-generated method stub
//some code
}
public PopupWindow popupWindowItems() {
// initialize a pop up window type
PopupWindow popupWindow = new PopupWindow(this);
// the drop down list is a list view
ListView listViewItems = new ListView(this);
// set our adapter and pass our pop up window contents
ArrayAdapter<String> adapter=new ArrayAdapter<String>(
this, //context for activity
android.R.layout.simple_list_item_1, //layout used
Name){ //Items to be displayed
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// setting the ID and text for every items in the list
String item = getItem(position);
String text = item.toString();
// visual settings for the list item
TextView listItem = new TextView(MainActivity.this);
listItem.setText(text);
//listItem.setTag(id);
listItem.setTextSize(22);
listItem.setPadding(10, 10, 10, 10);
listItem.setTextColor(Color.WHITE);
return listItem;
}
};
listViewItems.setAdapter(adapter);
// set the item click listener
listViewItems.setOnItemClickListener(new ItemsDropdownOnItemClickListener());
// some other visual settings
//popupWindow.setFocusable(true);
popupWindow.setWidth(EtItemCode.getWidth());
//popupWindow.setHeight(WindowManager.LayoutParams.WRAP_CONTENT);
Rect r = new Rect();
View rootview = this.getWindow().getDecorView(); // this = activity
rootview.getWindowVisibleDisplayFrame(r);
popupWindow.setHeight(r.height()-3*EtItemCode.getHeight());
// set the list view as pop up window content
popupWindow.setContentView(listViewItems);
return popupWindow;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
MenuInflater blowUp = getMenuInflater();
blowUp.inflate(R.menu.cool_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.phone_number:
Intent p = new Intent(MainActivity.this,PhoneNumber.class);
startActivity(p);
break;
case R.id.exit:
finish();
break;
}
return false;
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
//some code
}
class LoadDataBase extends AsyncTask<String, String, String>{
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog.setMessage("DataBase Loading..");
pDialog.setIndeterminate(true);
pDialog.setCancelable(false);
pDialog.show();
}
@Override
protected String doInBackground(String... arg0) {
// TODO Auto-generated method stub
DatabaseHandler db = new DatabaseHandler(MainActivity.this);
Log.d("Reading: ", "Reading all Items..");
List<Item> Items = db.getAllItem();
//some code
//DatabaseHandler db1 = new DatabaseHandler(this);
count= db.getItemCount();
return null;
}
protected void onPostExecute(String file_url) {
pDialog.dismiss();
}
}
public class ItemsDropdownOnItemClickListener implements OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> arg0, View v, int arg2, long arg3) {
Toast.makeText(MainActivity.this, "Item is: ", Toast.LENGTH_SHORT).show();
InputMethodManager imm = (InputMethodManager)getSystemService(
Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(EtItemCode.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
// dismiss the pop up
popupWindowItems.dismiss();
// get the text and set it as the button text
String selectedItemText = ((TextView) v).getText().toString();
Toast.makeText(MainActivity.this, "Item is: " + selectedItemText, Toast.LENGTH_SHORT).show();
DatabaseHandler db =new DatabaseHandler(MainActivity.this);
Item item= new Item();
if(RbForItemCode.isChecked()==true){
item = db.getItem(Integer.valueOf(selectedItemText));
}
else if(RbForItemName.isChecked()==true){
item = db.getItem(selectedItemText);
}
itemCode=item.getItemNumber();
}
}
@Override
public void onCheckedChanged(RadioGroup arg0, int arg1) {
// TODO Auto-generated method stub
if(RbForItemCode.isChecked()==true){
itemNumberOrNameSelectedInRadioButtonOptions="id";
//some code
}
}
else if(RbForItemName.isChecked()==true){
//some code
}
}
}