从自动完成中选择值时更改编辑文本的值

时间:2014-05-20 06:31:47

标签: android

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();


            }


    };

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

2 个答案:

答案 0 :(得分:0)

您必须使用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();



        } 

    });

每当AutocompleteTextView中的文字发生变化时,您都可以在onTextChanged()方法中执行必要的任务。您可以找到有关TextWatcher here的更多详细信息。

答案 1 :(得分:0)

让你的编辑文本最终,

final EditText d_no = new EditText(getActivity());

并在自动完成文本视图的onItemClickListener()中设置值,

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();


            }


    };

仅当您一次只创建一个edittext时,这才有效。如果您创建了多个标记,则必须设置不同的标记,然后在设置值时检查标记。