2

AutoCompleteTextView を膨張させ、テキストの入力に関する提案を表示しないようにした後、ListActivity の ListView のヘッダーにビューを追加しています。通常は正常に動作しますが、ListView のヘッダーに追加すると正常に動作しません。

header_route.xml :

<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/header"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        >
     <TextView
        android:id="@+id/lblride_From"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/txtFrom"
        android:layout_alignParentTop="true"
        android:text="@string/lblride_Route"
        />

    <AutoCompleteTextView
        android:id="@+id/txtFrom"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/lblride_From"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="2dp"
        android:completionThreshold="1"
        android:ems="10"
        android:width="290dp"
        android:imeOptions="actionGo"
        android:popupBackground="@android:color/black" >

        <requestFocus />
    </AutoCompleteTextView>

    <Button
        android:id="@+id/hdbtnOkRoute"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/txtFrom"
        android:layout_below="@+id/txtFrom"
        android:layout_marginTop="2dp"
        android:minHeight="40dp"
        android:text="@string/txtBtnOk"
        android:width="290dp" />

 </RelativeLayout>


public class BusRouteActivity extends ListActivity implements TextWatcher {

    AutoCompleteTextView actvFrom;
    Button buttonOK;
    TextView txtViewRouteItem;
    ListView lstViewRoute;
    ArrayAdapter<String> listAdapter;
    DataBaseHelper databaseHelper;
    TextView tvFooter;
    Context appContext;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setTitle(R.string.nameBusRouteActivity);
        appContext = getApplicationContext();
        lstViewRoute = getListView();
        LayoutInflater inflater = (LayoutInflater)appContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
        View view = inflater.inflate(R.layout.header_route, null);

        DataBaseHelper dbh = new DataBaseHelper(getApplicationContext());

        try {
            dbh.createDataBase();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();            
        }

        dbh.openDataBase();
        databaseHelper = dbh;

    actvFrom = (AutoCompleteTextView) view.findViewById(R.id.txtFrom);
        actvFrom.addTextChangedListener(this);
        actvFrom.setOnEditorActionListener(actionListener);
        ArrayAdapter<String> aroutes = new ArrayAdapter<String>(appContext, R.layout.routeitem, dbh.GetRoutes());
        actvFrom.setAdapter(aroutes);

        buttonOK = (Button)view.findViewById(R.id.hdbtnOkRoute);
        buttonOK.setOnClickListener(OkOnClickListener);

        tvFooter = new TextView(this);
        tvFooter.setTextAppearance(getApplicationContext(), R.style.footerStyle);
        String text = getResources().getString(R.string.footer);
        tvFooter.setText(Html.fromHtml(text));

        listAdapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.routeitem);
        lstViewRoute.addHeaderView(view, null, false);
        lstViewRoute.addFooterView(tvFooter, null, true);
        lstViewRoute.setClickable(true);
        lstViewRoute.setSelected(true);
        lstViewRoute.setAdapter(listAdapter);
    }

設定が不足している場合はお知らせください。前もって感謝します。

4

1 に答える 1