2015-04-22 2 views
-2

Я просто создал приложение для извлечения данных веб-сайта, чтобы показать в списке view.at то же самое время, когда данные поиска пользователя с помощью ввода текста в editText в андроида Мой файл XML показано здесьпоиска в виде списка в Android App

<EditText 
     android:layout_width="180px" 
     android:layout_height="75px" 
     android:drawableLeft="@android:drawable/ic_menu_search" 
     android:background="@color/thick" 
     android:id="@+id/filterText" 
     android:hint="Filter Items.." 
     android:inputType="textAutoComplete" 
     android:textColor="#fffff0" 
     android:layout_below="@+id/radioTym" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:gravity="fill_vertical" 
     /> 

    <Button 
     android:id="@+id/btnData" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="KNOW YOUR AREA" 
     android:textColor="#ffffff" 
     android:background="#444549" 
     android:layout_below="@+id/filterText" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" /> 
    <ListView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/listShow" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_below="@+id/btnData" /> 

Мой ява код здесь

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_primary); 
    filterItems=(EditText)findViewById(R.id.filterText); 
    filterItems.addTextChangedListener(new TextWatcher() { 
     @Override 
     public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) { 
      PrimaryActivity.this.arrayAdapter.getFilter().filter(charSequence); 

     } 

     @Override 
     public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) { 

     } 

     @Override 
     public void afterTextChanged(Editable editable) { 

     } 
    }); 

Мой адаптер массив здесь

ArrayAdapter<String> arrayAdapter; 

    @Override 
    protected void onPostExecute(String[] result) { 
     // Set title into TextView 
     //TextView txttitle = (TextView) findViewById(R.id.txtData); 
     //txttitle.setMovementMethod(new ScrollingMovementMethod()); 
     //txttitle.setText(listValue); 
     ListView list=(ListView)findViewById(R.id.listShow); 
     arrayAdapter=new ArrayAdapter<String>(getBaseContext(),android.R.layout.simple_list_item_1,result); 
     list.setAdapter(arrayAdapter); 
     mProgressDialog.dismiss(); 
    } 
} 

Я не могу использовать arrayadapter в методе beforeTextChanged. Как я могу получить к нему доступ?

ответ

1

вы просто объявляете адаптер массива в действии.

public class PrimaryActivity extends Activity { 
    ArrayAdapter<String> arrayAdapter; 
} 
filterItems=(EditText)findViewById(R.id.filterText); 
    filterItems.addTextChangedListener(new TextWatcher() { 
     @Override 
     public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) { 
      PrimaryActivity.this.arrayAdapter.getFilter().filter(charSequence); 

     } 

     @Override 
     public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) { 

     } 

     @Override 
     public void afterTextChanged(Editable editable) { 

     } 
    }); 
+0

это небольшая ошибка. Я делаю это hours.thanks –

Смежные вопросы