2

AutoCompleteTextView に接続された 100 個の文字列が取り込まれたアダプターがあります。ポートレート モードでは、これは期待どおりに機能します。「11」と入力すると、100 個の要素すべてがドロップダウン リストとして表示され、正しいインデックスが onItemClick のインデックス パラメータとして渡されます。

ただし、横向きモードで何が起こるかわかりません。「11」と入力すると、最初の 20 個の要素のみがリストに表示され、リストの最初の 4 個の要素のみが onItemClick でクリックしたときに正しいインデックスを渡します。方法。他のリスト要素をクリックすると、インデックスは -1 になりますか? また、ランドスケープ モードではカウントが 100 になっているのに、最初の 20 しか表示されないのはなぜですか?

これがなぜなのか知っている人はいますか?

MainActivity.java

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;

public class MainActivity extends Activity {

public static final String TAG = "MainActivity";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item);

    for(int i = 0; i < 100; i++) {
        adapter.add(new String("11" + i));
    }

    AutoCompleteTextView ac = (AutoCompleteTextView) findViewById(R.id.search_auto_complete);

    ac.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int index, long id) {

            Log.d(TAG, "Index: " + index);
            Log.d(TAG, "Elements in adapter: " + adapterView.getCount());               

            if(index == -1) {
                Log.e(TAG, "Index not found, aborting AutoCompleteTextView.onItemClick!");
                return;
            }
        }
    });

    ac.setAdapter(adapter);

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}

}

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <AutoCompleteTextView
        android:id="@+id/search_auto_complete"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:dropDownWidth="fill_parent"
        android:gravity="center_vertical|left"
        android:inputType="textAutoComplete" />

</RelativeLayout>
4

0 に答える 0