2

I am adding the View to the Header of ListView in the ListActivity, after inflating which has AutoCompleteTextView and not showing the suggestions on entering text. Though it works absolutely fine in normal case but not working fine when added to Header of 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);
    }

Please let me know if I am missing any setting? Thanks in advance.

4

1 回答 1

0

这是一个可能对您有所帮助的代码!

http://www.javatpoint.com/android-autocompletetextview-example

于 2013-11-13T06:43:16.787 回答