2013-06-05 31 views
-6

我创建了一个列表视图。列表中的每一行都有两个字段。一个是图像,另一个是书名。我如何应用搜索功能在Android的列表中的一个字段。 我已添加编辑文本文本。Android中的搜索功能列表视图

setContentView(R.layout.activity_my_purchase); 

    TextView headerText = (TextView) findViewById(R.id.heading); 
    headerText.setText(R.string.my_purchase); 

    ImageView refreshImg = (ImageView) findViewById(R.id.img_right); 
    refreshImg.setImageResource(R.drawable.refresh); 

    ImageView searchImg = (ImageView) findViewById(R.id.img_middle); 
    searchImg.setImageResource(R.drawable.top_icn_search); 
    searchImg.setOnClickListener(searchImageClickListener); 

    searchBox = (EditText) findViewById(R.id.searchBox); 

    ImageView imgGidIcon = (ImageView) findViewById(R.id.img_left); 
    imgGidIcon.setImageResource(R.drawable.top_icn_grid); 
    imgGidIcon.setOnClickListener(imgGidIconClickListener); 

    // Restore preferences 
    SharedPreferences settings = EBookReaderApplication.getApplicationInstance().getAppPreferences(); 
    String userName = settings.getString(Constants.TAG_USERNAME, null); 

    new PurchasedBooksListTask(MyPurchasesActivity.this).execute(
      Constants.API_URL, userName); 

    // Set list view to the screen 
    bookListView = (ListView) findViewById(R.id.list_books); 

    bookListView.setOnItemClickListener(bookListItemClickListener); 
    searchResults = new ArrayList<HashMap<String, Object>>(originalValues); 
    searchBox.addTextChangedListener(new TextWatcher() { 

     @Override 
     public void onTextChanged(CharSequence cs, int arg1, int arg2, 
       int arg3) { 

      String searchString = searchBox.getText().toString().trim(); 
      int textLength = searchString.length(); 
      listAdapter.clear(); 
      // When user changed the Text 
     /// MyPurchasesActivity.this.listAdapter.getFilter().filter(cs); 
     } 

     @Override 
     public void beforeTextChanged(CharSequence arg0, int arg1, 
       int arg2, int arg3) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void afterTextChanged(Editable arg0) { 
      // TODO Auto-generated method stub 
     } 
    }); 
} 

/** 
* 
*/ 
private OnClickListener imgGidIconClickListener = new OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     Intent intent = new Intent().setClass(MyPurchasesActivity.this, 
       LibraryActivity.class); 
     startActivity(intent); 
    } 
}; 

/** 
* 
*/ 
private OnClickListener searchImageClickListener = new OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     searchBox.setVisibility(View.VISIBLE); 

    } 
}; 

private OnItemClickListener bookListItemClickListener = new OnItemClickListener() { 

    @Override 
    public void onItemClick(AdapterView<?> arview, View parent, 
      int position, long id) { 

    } 
}; 

/** 
* 
* @author Manoj 
* 
*/ 
private class PurchasedBooksListTask extends 
     AsyncTask<String, Void, Boolean> { 

    /** progress dialog to show user that the backup is processing. */ 
    private ProgressDialog dialog; 

    /* Constructor for the Asynchronous task */ 
    public PurchasedBooksListTask(MyPurchasesActivity activity) { 
     dialog = new ProgressDialog(activity); 
    } 

    @Override 
    protected void onPreExecute() { 
     dialog.setMessage(getResources().getString(R.string.loading)); 
     dialog.show(); 
    } 

    @Override 
    protected Boolean doInBackground(String... params) { 
     try { 
      listPurchasedBooks = new JSONReader() 
        .getPurchasedBooksList(new JSONParser() 
          .getJSONFromList(params[0], params[1])); 

      return true; 
     } catch (Exception e) { 
      return false; 
     } 
    } 

    @Override 
    protected void onPostExecute(Boolean result) { 
     if (result) { 
      dialog.dismiss(); 
      // Sets the adapter to the list view 
      if (listPurchasedBooks != null && listPurchasedBooks.size() > 0) { 
       listAdapter = new PurchasedBookListAdapter(
         MyPurchasesActivity.this, listPurchasedBooks); 
       bookListView.setAdapter(listAdapter); 
      } 
     } 

    } 
} 

}

+2

我读的正确吗?每行ListView内的搜索功能? –

+0

你可以发布你的代码片段吗? –

+1

它的重复http://stackoverflow.com/questions/14118309/how-to-use-search-functionality-in-custom-list-view-in-android – Riser

回答