0

私のプログラムでは、特定の結果を示すために2 つAutoCompleteTextViewの aButtonと aがあります。TableLayoutこのプログラムでは、TableLayoutは隠され、結果が生成された後にのみ表示されます。

Buttonまた、ユーザーが入力した後にのみ表示されることを望んでいましたAutoCompleteTextViewが、私が書いたコードでは、私が望むように機能していません。

    calculate = (Button)findViewById(R.id.calculate);
    if(location.getText().toString().length()<1 && destination.getText().toString().length()<1)
    {
        calculate.setVisibility(View.INVISIBLE);
    }
    else
    {
        calculate.setVisibility(View.VISIBLE);
        calculate.setOnClickListener(new View.OnClickListener() {



            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

            if(location.getText().toString().length()<1 || destination.getText().toString().length()<1) 
            {
                Toast.makeText(getApplicationContext(), "Give values before placing a query", Toast.LENGTH_LONG).show();
            }
            else{
                @SuppressWarnings("deprecation")
                String url = "http://maps.googleapis.com/maps/api/distancematrix/json?origins="+URLEncoder.encode(location.getText().toString())+"&destinations="+URLEncoder.encode(destination.getText().toString())+"&unit=metric&mode=driving&sensor=false";
                new ReadDistanceJSONFeedTask().execute(url);
                z=+1;
                isNormal=false;
                supportInvalidateOptionsMenu();
                }
            }
        });

    }

このコードではButton、 はまったく表示されません。誰か助けてください?? 前もって感謝します。

4

2 に答える 2

0

最初に、テキストが確実に空のときにボタンの可視性を計算するだけなので、ボタンは消えて二度と戻りません。テキストの変更を聞いて、変更が発生したときにボタンの可視性を計算する必要があるようです。

次のようなもの (AotoCompleteTextView の名前が bob であると仮定):

    bob.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            // TODO your button calculation goes here               
        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {}

        @Override
        public void afterTextChanged(Editable s) {}
    });
于 2013-04-08T14:52:00.647 に答える
0

私はあなたが間違っているかもしれないと思うので、変更してみてください

if(location.getText().toString().length()<1 && destination.getText().toString().length()<1)

if(location.getText().toString().length()<1 || destination.getText().toString().length()<1)

于 2013-04-08T14:44:09.813 に答える