From 12a19ad554e6f7c5c355856c12914bca7bce70e8 Mon Sep 17 00:00:00 2001 From: admin <2780501319@qq.com> Date: 星期二, 30 三月 2021 01:39:47 +0800 Subject: [PATCH] 搜索与搜索结果页,白色背景兼容 --- BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/SearchResultActivity.java | 119 +++++++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 79 insertions(+), 40 deletions(-) diff --git a/BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/SearchResultActivity.java b/BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/SearchResultActivity.java index 9019582..2d3d08c 100644 --- a/BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/SearchResultActivity.java +++ b/BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/SearchResultActivity.java @@ -26,8 +26,10 @@ import android.widget.ArrayAdapter; import android.widget.AutoCompleteTextView; import android.widget.BaseAdapter; +import android.widget.EditText; import android.widget.Filter; import android.widget.Filterable; +import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.LinearLayout.LayoutParams; @@ -68,7 +70,7 @@ public class SearchResultActivity extends BaseActivity implements OnClickListener { - private AutoCompleteTextView et_search_key; + private EditText et_search_key; private TextView tv_search_cancel; @@ -101,11 +103,17 @@ private LinearLayout ll_empty; + private SearchSuggestFragment suggestFragment; + + private FrameLayout fl_suggest; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.search_result_activity); initStatusBar(); + + suggestFragment = new SearchSuggestFragment(); rl_search_result = findViewById(R.id.rl_search_result); et_search_key = findViewById(R.id.et_search_key); @@ -113,6 +121,7 @@ rv_video_search = findViewById(R.id.rv_video_search); ll_top_bar = findViewById(R.id.ll_top_bar); ll_empty = findViewById(R.id.ll_empty); + fl_suggest = findViewById(R.id.fl_suggest); tv_search_cancel.setOnClickListener(this); et_search_key.addTextChangedListener(new TextWatcher() { @@ -131,33 +140,18 @@ @Override public void afterTextChanged(Editable s) { - if (!TextUtils.isEmpty(s.toString()) - || !TextUtils.isEmpty(et_search_key.getText())) { - if (mFirst) { - mFirst = false; - } else { - suggestSearch(s.toString()); - } + if (!TextUtils.isEmpty(s.toString())) { et_search_key.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_clear, 0); } else { et_search_key.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0); } - } - }); - et_search_key.setOnItemClickListener(new OnItemClickListener() { - - @Override - public void onItemClick(AdapterView<?> parent, View view, - int position, long id) { - mFirst = true; - mCurrentKey = parent.getItemAtPosition(position).toString(); - SoftKeyboardUtils.hideSoftInput(SearchResultActivity.this); - mCurrentPage = 1; - //娓呴櫎椤堕儴鍒嗙被 - typeList = null; - search(mCurrentKey, mCurrentType); + if (mFirst) { + mFirst = false; + } else { + suggestSearch(s != null ? s.toString() : null); + } } }); @@ -190,18 +184,7 @@ @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if (actionId == EditorInfo.IME_ACTION_SEARCH) { - if (StringUtils.isEmpty(et_search_key.getEditableText() - .toString())) { - mCurrentKey = et_search_key.getText().toString(); - } else { - mCurrentKey = et_search_key.getEditableText().toString(); - } - SoftKeyboardUtils.hideSoftInput(SearchResultActivity.this); - mCurrentPage = 1; - rl_search_result.setRefreshing(true); - //娓呴櫎椤堕儴鍒嗙被 - typeList = null; - search(mCurrentKey, mCurrentType); + startSearch(); return true; } return false; @@ -268,6 +251,21 @@ // loadAd(); } + private void startSearch() { + if (StringUtils.isEmpty(et_search_key.getEditableText() + .toString())) { + mCurrentKey = et_search_key.getText().toString(); + } else { + mCurrentKey = et_search_key.getEditableText().toString(); + } + SoftKeyboardUtils.hideSoftInput(SearchResultActivity.this); + mCurrentPage = 1; + rl_search_result.setRefreshing(true); + //娓呴櫎椤堕儴鍒嗙被 + typeList = null; + search(mCurrentKey, mCurrentType); + } + private void initTopBar(List<VideoType> videoTypeList) { int p = 0; ll_top_bar.removeAllViews(); @@ -304,12 +302,12 @@ if (selected) { tv_name.setBackgroundResource(R.drawable.vpi__tab_selected_focused_holo); tv_name.setTextSize(17); - tv_name.setTextColor(Color.parseColor("#FFFFFF")); + tv_name.setTextColor(getResources().getColor(R.color.nav_highloght_text_color)); tv_name.setPadding(0, 0, 0, DimenUtils.dip2px(getApplicationContext(), 5)); } else { tv_name.setBackground(null); tv_name.setTextSize(12); - tv_name.setTextColor(Color.parseColor("#999999")); + tv_name.setTextColor(getResources().getColor(R.color.nav_text_color)); tv_name.setPadding(0, 0, 0, 0); } } @@ -321,7 +319,37 @@ } } + + private void hiddenSuggestFragment() { + fl_suggest.setVisibility(View.GONE); + getSupportFragmentManager().beginTransaction().remove(suggestFragment).commitAllowingStateLoss(); + } + + private void showSuggestFragment(String key, List<String> list) { + Bundle bundle = new Bundle(); + bundle.putString("key", key); + bundle.putString("list", new Gson().toJson(list)); + fl_suggest.setVisibility(View.VISIBLE); + suggestFragment.setItemClickListener(new SearchSuggestFragment.OnItemClickListener() { + @Override + public void onClick(String st) { + mFirst = true; + hiddenSuggestFragment(); + et_search_key.setText(st); + startSearch(); + } + }); + + suggestFragment.setArguments(bundle); + getSupportFragmentManager().beginTransaction().replace(R.id.fl_suggest, suggestFragment).commitAllowingStateLoss(); + } + + private void suggestSearch(String key) { + if (StringUtils.isEmpty(key)) { + hiddenSuggestFragment(); + } + SharedPreferences preferences = getSharedPreferences("user", Context.MODE_PRIVATE); String uid = preferences.getString("uid", ""); @@ -332,18 +360,29 @@ public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception { + List<String> results = null; if (jsonObject.getBoolean("IsPost")) { Gson gson = new GsonBuilder().setFieldNamingPolicy( FieldNamingPolicy.UPPER_CAMEL_CASE) .create(); - List<String> results = gson.fromJson(jsonObject + results = gson.fromJson(jsonObject .getJSONObject("Data").getJSONArray("data") .toString(), new TypeToken<List<String>>() { }.getType()); - SuggestKeysAdapter adapter = new SuggestKeysAdapter(getApplicationContext(), results); - et_search_key.setAdapter(adapter); - adapter.notifyDataSetChanged(); + + +// SuggestKeysAdapter adapter = new SuggestKeysAdapter(getApplicationContext(), results); +// et_search_key.setAdapter(adapter); +// adapter.notifyDataSetChanged(); } + + if (results != null && results.size() > 0) { + showSuggestFragment(key, results); + suggestFragment.setData(key, results); + } else { + hiddenSuggestFragment(); + } + } }); } -- Gitblit v1.8.0