@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.search); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { getWindow().setStatusBarColor(getResources().getColor(R.color.holo_blue_bright)); } listmain = new ArrayList<ConRecItem>(); tm = (EditText) findViewById(R.id.setext); final RecycleItemClickListener itemClickListener = new RecycleItemClickListener() { @Override public void onItemClick(View view, int position) { switch (position) { default: Intent intent = new Intent(searchActivity.this, conActivity.class); Data data = new Data(); File fl = new File("/storage/sdcard0/M++/data/slist.txt"); String spos = data.getData(fl, position + 1); int pos = Integer.valueOf(spos); intent.putExtra("pos", pos); startActivity(intent); break; } } }; int displayWidth = 0; int displayHeight = 0; DisplayMetrics displayMetrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); displayWidth = displayMetrics.widthPixels; displayHeight = displayMetrics.heightPixels; final int rpos = displayWidth / 320; listmain = new ArrayList<ConRecItem>(); ConRecAdapter adapter = new ConRecAdapter(listmain, itemClickListener); RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler); recyclerView.setLayoutManager( new StaggeredGridLayoutManager(rpos, StaggeredGridLayoutManager.VERTICAL)); recyclerView.setAdapter(adapter); tm.addTextChangedListener( new TextWatcher() { @Override public void beforeTextChanged(CharSequence p1, int p2, int p3, int p4) { // TODO: Implement this method } @Override public void onTextChanged(CharSequence p1, int p2, int p3, int p4) { // TODO: Implement this method } @Override public void afterTextChanged(Editable edit) { // TODO listmain = new ArrayList<ConRecItem>(); System.out.println("okokok"); File fs = new File("/storage/sdcard0/M++/data/fs_con.txt"); File fl = new File("/storage/sdcard0/M++/data/slist.txt"); String text = tm.getText().toString(); if (fs.exists()) { listmain = new ArrayList<ConRecItem>(); if (fl.exists()) { fl.delete(); } try { fl.createNewFile(); String reg = ".*" + text + ".*"; FileReader fr = new FileReader(fs); BufferedReader br = new BufferedReader(fr); String temp = null; String s = ""; while ((temp = br.readLine()) != null) { s += temp + "\n"; } String[] ss = s.split("\n"); for (int i = 0; i <= ss.length; i++) { try { if (ss[10 * i].matches(reg)) { ConRecItem p = new ConRecItem(ss[10 * i + 1], ss[10 * i]); listmain.add(p); String spos = String.valueOf(i); Data data = new Data(); data.writeData(fl, spos + "\n", false); } } catch (ArrayIndexOutOfBoundsException e) { } } ConRecAdapter adapter = new ConRecAdapter(listmain, itemClickListener); RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler); recyclerView.setLayoutManager( new StaggeredGridLayoutManager(rpos, StaggeredGridLayoutManager.VERTICAL)); recyclerView.setAdapter(adapter); } catch (Exception e) { e.printStackTrace(); } } }; }); }
@Override public void onClick(View v) { TextView txtManageLabel, txtBrowseLabel, txtRefreshLabel, txtSearchLabel; txtManageLabel = (TextView) findViewById(R.id.txt_manage_label); txtBrowseLabel = (TextView) findViewById(R.id.txt_browse_label); txtRefreshLabel = (TextView) findViewById(R.id.txt_refresh_label); txtSearchLabel = (TextView) findViewById(R.id.txt_search_label); txtSearch.addTextChangedListener( new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { new AsyncTask<String, Void, ArrayList<RssItem>>() { @Override protected ArrayList<RssItem> doInBackground(String... params) { return dbQuery.searchRssItem(params[0]); } @Override protected void onPostExecute(ArrayList<RssItem> result) { rssList.clear(); rssList.addAll(result); rssAdapter.config().notifyDataSetChanged(); } }.execute(s.toString()); } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) {} @Override public void afterTextChanged(Editable s) {} }); txtSearch.setOnKeyListener( new OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_ENTER) return true; return false; } }); switch (v.getId()) { case R.id.btn_manage: startActivityForResult( new Intent(RssReaderActivity.this, RssManageActivity.class), REQ_RSS_MANAGE); break; case R.id.btn_browse: rssProvider = dbQuery.getRssProviderList(null); int length = rssProvider.getProviderNames().length; if (length == 0) break; String[] providers = new String[length + 1]; providers[0] = "All"; for (int i = 0; i < length; i++) providers[i + 1] = rssProvider.getProviderNames()[i]; AlertDialog.Builder builder = new AlertDialog.Builder(this); builder .setTitle(R.string.rss_choose_provider) .setItems( providers, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int item) { if (item == 0) { loadData(null, true, false, false); return; } loadData(rssProvider.getProviderNames()[item - 1], false, false, false); curProvider = item - 1; updateListView(); } }); builder.create().show(); break; case R.id.btn_refresh: if (curProvider == -1) loadData(null, true, true, true); else loadData( dbQuery.getRssProviderList(null).getProviderNames()[curProvider], false, true, true); break; case R.id.btn_search: if (txtSearchLabel.getText().toString().equals(getString(R.string.btn_search_text))) { btnManage.setVisibility(View.GONE); txtManageLabel.setVisibility(View.GONE); btnBrowse.setVisibility(View.GONE); txtBrowseLabel.setVisibility(View.GONE); btnRefresh.setVisibility(View.GONE); txtRefreshLabel.setVisibility(View.GONE); btnSearch.setBackgroundResource(R.drawable.btn_done_background); txtSearchLabel.setText(R.string.btn_done_text); txtSearch.setVisibility(View.VISIBLE); txtSearch.requestFocus(); } else { btnManage.setVisibility(View.VISIBLE); txtManageLabel.setVisibility(View.VISIBLE); btnBrowse.setVisibility(View.VISIBLE); txtBrowseLabel.setVisibility(View.VISIBLE); btnRefresh.setVisibility(View.VISIBLE); txtRefreshLabel.setVisibility(View.VISIBLE); btnSearch.setBackgroundResource(R.drawable.btn_search_background); txtSearchLabel.setText(R.string.btn_search_text); txtSearch.setVisibility(View.GONE); txtSearch.setText(""); loadData(null, true, false, false); } break; default: break; } }