0

ボタンと2つのオートコンプリートウィジェットがあるアクティビティがあります。私が使用しているボタンの場合

addProductButton.setOnClickListener(this);

私が使用している2つのオートコンプリートウィジェットの場合

supplierTextView.setOnItemClickListener(this);

これで、最初のオートコンプリートを選択すると、このコードが実行されますが、2番目のオートコンプリートでアイテムをクリックしても、ifループには入りません。同じコードが実行されますが、elseには入りません。

@Override
public void onItemClick(AdapterView<?> adapter, View view, int pos, long rowId) {
// TODO -

    String supName = supplierTextView.getText().toString();

    String proName = productTextView.getText().toString();

    System.out.println("Name selected  "+ view.getId());

    if(view == supplierTextView)
    {
        Log.d("Supplier Name selected", supName);
    }
    else if(view == productTextView)
    {
        Log.d("Product Name selected", proName);
    }

    loadProducts(supName);
    handleProductSuccess(filteredProduct);

}
4

3 に答える 3

0

OnItemClickListenerは、オートコンプリートテキストフィールドアイテムのクリックをリッスンするために使用されます。

つまり、オートコンプリートの候補をクリックすると、オートコンプリートテキストビュー自体ではなく、その候補に対応するビューとそのインデックスが表示されます。

ビュー自体がクリックされたときに通知を受け取りたい場合は、AutocompleteTextViewsでOnClickListenerを使用してください。

テキストフィールドのテキストコンテンツの変更に対応する場合は、TextWatchedリスナーインターフェイスを使用できます。詳細については、 TextViewAPIを参照してください。

于 2012-06-19T05:49:15.357 に答える
0

この声明について。

if(view == supplierTextView)
{
        Log.d("Supplier Name selected", supName);
}
else if(view == productTextView)
{
        Log.d("Product Name selected", proName);
}

ビューのタイプはTextViewであるため、何も起こりませんでした。

2つのAutoCompleteTextViewのどちらがトリガーされるかを知りたい場合。

このステートメントを呼び出す

supplierTextView.setOnClickListener(listener);

productTextView.setOnClickListener(listener);

とでonClick()

public void onClick(View view)
{


 if(view == supplierTextView)
    {
            Log.d("Supplier Name selected", supName);
    }
    else if(view == productTextView)
    {
            Log.d("Product Name selected", proName);
    }

}

View.OnClickListenerを実装することを忘れないでください

于 2012-06-19T05:52:16.560 に答える
0

オートコンプリートビューにクリックイベントを与える場合は、setOnItemClickListenerをsetOnClickListenerに変更します。ifelse条件をonClickメソッドに入れます。それが動作します

于 2012-06-19T06:03:18.093 に答える