如何在android中在弹出popupwindow后继续键入edittext //导入 公共类MainActivity扩展活动实现OnCheckedChangeListener { 整数计数=0,整数。。。。。。; 文本视图文本视图。。。; int ite

如何在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

如何在android中在弹出popupwindow后继续键入edittext
//导入
公共类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
        }
    }

}