Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从“自动完成”中选择值时更改编辑文本的值 public void Add_Item(){ ll=新的线性布局(getActivity()); ll.设置方向(水平线性布局); LinearLayout.LayoutParams params=新的LinearLayout.LayoutParams( LayoutParams.WRAP_内容,LayoutParams.WRAP_内容); CustomAutoCompleteTextView a_no=新建CustomAutoCompleteTextView( getActivity(),null); a_no.setId(3); a_no.setAdapter(适配器); a_no.setHint(“账号”); a_no.setEms(10); a_no.setThreshold(1); a_编号设置标签(“a_编号”); a_编号设置填充(10,10,10,10); a_no.setOnItemClickListener(autoItemSelectedListner); ll.addView(a_编号); **EditText d_no=新的EditText(getActivity()); d_.编号setId(3); d_no.setHint(“说明编号”); d_.no.setEms(10); d_编号设置标签(“d_编号”); d_编号设置填充(10,10,10,10); ll2.添加视图(d_编号)** ll.addView(ince); ly.addView(ll); } 私有OnItemClickListener autoItemSelectedListner=新建OnItemClickListener(){ @凌驾 公共链接(AdapterView arg0、视图arg1、内部arg2、, 长arg3){ HashMap hm=(HashMap)arg0 .getAdapter().getItem(arg2); ViewGroup ViewGroup=(ViewGroup)arg0.getParent(); } };_Android - Fatal编程技术网

Android 从“自动完成”中选择值时更改编辑文本的值 public void Add_Item(){ ll=新的线性布局(getActivity()); ll.设置方向(水平线性布局); LinearLayout.LayoutParams params=新的LinearLayout.LayoutParams( LayoutParams.WRAP_内容,LayoutParams.WRAP_内容); CustomAutoCompleteTextView a_no=新建CustomAutoCompleteTextView( getActivity(),null); a_no.setId(3); a_no.setAdapter(适配器); a_no.setHint(“账号”); a_no.setEms(10); a_no.setThreshold(1); a_编号设置标签(“a_编号”); a_编号设置填充(10,10,10,10); a_no.setOnItemClickListener(autoItemSelectedListner); ll.addView(a_编号); **EditText d_no=新的EditText(getActivity()); d_.编号setId(3); d_no.setHint(“说明编号”); d_.no.setEms(10); d_编号设置标签(“d_编号”); d_编号设置填充(10,10,10,10); ll2.添加视图(d_编号)** ll.addView(ince); ly.addView(ll); } 私有OnItemClickListener autoItemSelectedListner=新建OnItemClickListener(){ @凌驾 公共链接(AdapterView arg0、视图arg1、内部arg2、, 长arg3){ HashMap hm=(HashMap)arg0 .getAdapter().getItem(arg2); ViewGroup ViewGroup=(ViewGroup)arg0.getParent(); } };

Android 从“自动完成”中选择值时更改编辑文本的值 public void Add_Item(){ ll=新的线性布局(getActivity()); ll.设置方向(水平线性布局); LinearLayout.LayoutParams params=新的LinearLayout.LayoutParams( LayoutParams.WRAP_内容,LayoutParams.WRAP_内容); CustomAutoCompleteTextView a_no=新建CustomAutoCompleteTextView( getActivity(),null); a_no.setId(3); a_no.setAdapter(适配器); a_no.setHint(“账号”); a_no.setEms(10); a_no.setThreshold(1); a_编号设置标签(“a_编号”); a_编号设置填充(10,10,10,10); a_no.setOnItemClickListener(autoItemSelectedListner); ll.addView(a_编号); **EditText d_no=新的EditText(getActivity()); d_.编号setId(3); d_no.setHint(“说明编号”); d_.no.setEms(10); d_编号设置标签(“d_编号”); d_编号设置填充(10,10,10,10); ll2.添加视图(d_编号)** ll.addView(ince); ly.addView(ll); } 私有OnItemClickListener autoItemSelectedListner=新建OnItemClickListener(){ @凌驾 公共链接(AdapterView arg0、视图arg1、内部arg2、, 长arg3){ HashMap hm=(HashMap)arg0 .getAdapter().getItem(arg2); ViewGroup ViewGroup=(ViewGroup)arg0.getParent(); } };,android,Android,在上面的代码中,我使用自定义自动完成来填充一些数据。它工作得很好。但是,当从自动完成中选择值时,我需要更改位于自动完成旁边的编辑文本的值。这里的问题是,在使用Additem方法时,自动完成和编辑文本是动态创建的已调用。您必须使用TextWatcher public void Add_Item() { ll = new LinearLayout(getActivity()); ll.setOrientation(LinearLayout.HORIZONTAL);

在上面的代码中,我使用自定义自动完成来填充一些数据。它工作得很好。但是,当从自动完成中选择值时,我需要更改位于自动完成旁边的编辑文本的值。这里的问题是,在使用Additem方法时,自动完成和编辑文本是动态创建的已调用。

您必须使用TextWatcher

public void Add_Item() {

        ll = new LinearLayout(getActivity());
        ll.setOrientation(LinearLayout.HORIZONTAL);

        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
                LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);


        CustomAutoCompleteTextView a_no = new CustomAutoCompleteTextView(
                getActivity(), null);
        a_no.setId(3);
        a_no.setAdapter(adapter);
        a_no.setHint("Account No");
        a_no.setEms(10);
        a_no.setThreshold(1);
        a_no.setTag("a_no");
        a_no.setPadding(10, 10, 10, 10);
        a_no.setOnItemClickListener(autoItemSelectedListner);
        ll.addView(a_no);

                    **EditText d_no = new EditText(getActivity());
            d_no.setId(3);
            d_no.setHint("Description No");
            d_no.setEms(10);
            d_no.setTag("d_no");
            d_no.setPadding(10, 10, 10, 10);
            ll2.addView(d_no);**

        ll.addView(ince);
        ly.addView(ll);

    }
  private OnItemClickListener autoItemSelectedListner = new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
            HashMap<String, String> hm = (HashMap<String, String>) arg0
                    .getAdapter().getItem(arg2);

            ViewGroup viewgroup = (ViewGroup) arg0.getParent();


            }


    };

每当AutocompleteTextView中的文本发生更改时,您都可以在onTextChanged()方法中执行必要的任务。您可以找到有关
TextWatcher
使编辑文本成为最终文本的更多详细信息

your_auto_completetextview.addTextChangedListener(new TextWatcher() {

        @Override
        public void afterTextChanged(Editable s) {
            // TODO Auto-generated method stub

        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {

            doSomething();



        } 

    });
并在autocomplete textview的onItemClickListener()中设置值

final EditText d_no = new EditText(getActivity());
private-OnItemClickListener-autoItemSelectedListner=new-OnItemClickListener(){
@凌驾
公共链接(AdapterView arg0、视图arg1、内部arg2、,
长arg3){
HashMap hm=(HashMap)arg0
.getAdapter().getItem(arg2);
d_no.setText(“您的_值_here”);//将值设置为edittext
ViewGroup ViewGroup=(ViewGroup)arg0.getParent();
}
};

仅当一次仅创建一个edittext时,此选项才起作用。如果您创建了多个标记,则必须设置不同的标记,然后在设置值时检查标记。

谢谢您的回复,但问题是我如何更改出现在自动完成问题旁边的编辑文本的值?只需将ed.setText(某物)放在onTextchanged()中@kgandroid如果我这样做,那么每当我在autocomplete textview中键入字符时,edittext中的文本将被更改。然后每当我在autocomplete中写入任何内容时,必须调用removeTextChangedListener(watcher)),设置文本后,我们必须使用addTextChangedListener(watcher)重新启用侦听器)。此外,我们还可以使用一些布尔值来检测状态。该逻辑必须由程序员实现。这种方法无法获取编辑文本的值,因为编辑文本是动态生成的。请尝试此方法。并计算它给出1的子元素数,即使我有3个子元素。哪个子元素计数?自动完成的父元素是线性布局。它包含2个子项(例如:e_no和d_no),您使用过ll.getChildCount();:是的,运气不好
private OnItemClickListener autoItemSelectedListner = new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
            HashMap<String, String> hm = (HashMap<String, String>) arg0
                    .getAdapter().getItem(arg2);

            d_no.setText("your_value_here");//To set the value to edittext

            ViewGroup viewgroup = (ViewGroup) arg0.getParent();


            }


    };