From cbb88109494ffc7916f6639c20ce05c0cec941a9 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 07 四月 2021 15:07:45 +0800 Subject: [PATCH] 3.9.1bug修复 --- BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/SearchActivity.java | 101 ++++++++++++++++++++++++++++++++++---------------- 1 files changed, 69 insertions(+), 32 deletions(-) diff --git a/BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/SearchActivity.java b/BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/SearchActivity.java index 32f76a1..2901d35 100644 --- a/BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/SearchActivity.java +++ b/BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/SearchActivity.java @@ -20,6 +20,7 @@ import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; import android.widget.AutoCompleteTextView; +import android.widget.EditText; import android.widget.FrameLayout; import android.widget.GridView; import android.widget.ImageView; @@ -50,6 +51,7 @@ import com.weikou.beibeivideo.util.DimenUtils; import com.weikou.beibeivideo.util.ad.AdUtil; import com.weikou.beibeivideo.util.ad.ExpressAdManager; +import com.weikou.beibeivideo.util.ui.TopStatusSettings; import org.apache.http.Header; import org.json.JSONObject; @@ -59,7 +61,7 @@ public class SearchActivity extends BaseActivity implements OnClickListener { - private AutoCompleteTextView et_search_key; + private EditText et_search_key; private TextView tv_clear; @@ -71,7 +73,13 @@ private LinearLayout ll_search_history; + private SearchSuggestFragment suggestFragment; + + private FrameLayout fl_suggest; + private String value = ""; + + private boolean touchSearchInput = false; private void initView() { fl_advertisement = findViewById(R.id.fl_advertisement); @@ -82,14 +90,16 @@ gv_history_search = findViewById(R.id.gv_history_search); tv_clear = findViewById(R.id.tv_search_clear_his); ll_search_history = findViewById(R.id.ll_search_history); + fl_suggest = findViewById(R.id.fl_suggest); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.search_actvity); - initStatusBar(); + TopStatusSettings.setStatusViewAndDeepColor(this); initView(); + suggestFragment = new SearchSuggestFragment(); et_search_key.setOnEditorActionListener(new TextView.OnEditorActionListener() { @Override @@ -137,44 +147,24 @@ @Override public void afterTextChanged(Editable s) { - if (!TextUtils.isEmpty(s.toString()) - || !TextUtils.isEmpty(et_search_key.getHint())) { - suggestSearch(s.toString()); + if (s != null && !TextUtils.isEmpty(s.toString())) { et_search_key.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_clear, 0); -// tv_search_cancel.setText(R.string.search); } else { et_search_key.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0); -// tv_search_cancel.setText(R.string.cancel); } + suggestSearch(s != null ? s.toString() : null); } }); if (!TextUtils.isEmpty(value)) { et_search_key.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_clear, 0); -// tv_search_cancel.setText(R.string.search); } else { et_search_key.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0); -// tv_search_cancel.setText(R.string.cancel); } - - et_search_key.setOnItemClickListener(new OnItemClickListener() { - - @Override - public void onItemClick(AdapterView<?> parent, View view, - int position, long id) { - if (parent.getItemAtPosition(position) != null) { - Intent intent = new Intent(SearchActivity.this, - SearchResultActivity.class); - intent.putExtra("key", parent.getItemAtPosition(position) - .toString()); - startActivity(intent); - } - } - }); et_search_key.setOnTouchListener(new OnTouchListener() { @@ -183,6 +173,7 @@ // getCompoundDrawables() 鍙互鑾峰彇涓�涓暱搴︿负4鐨勬暟缁勶紝 // 瀛樻斁drawableLeft锛孯ight锛孴op锛孊ottom鍥涗釜鍥剧墖璧勬簮瀵硅薄 // index=2 琛ㄧず鐨勬槸 drawableRight 鍥剧墖璧勬簮瀵硅薄 + Drawable drawable = et_search_key.getCompoundDrawables()[2]; if (drawable == null) return false; @@ -199,6 +190,7 @@ return false; } }); + gv_hot_search.setOnItemClickListener(new OnItemClickListener() { @@ -236,20 +228,21 @@ public void onResume() { super.onResume(); getHistorySearch(); - MobclickAgent.onPageStart("鎼滅储椤�"); } @Override public void onPause() { super.onPause(); - MobclickAgent.onPageEnd("鎼滅储椤�"); } @Override public void onClick(final View v) { switch (v.getId()) { case R.id.tv_search_cancel: - finish(); + if (fl_suggest.getVisibility() == View.VISIBLE) { + hiddenSuggestFragment(); + } else + finish(); break; case R.id.tv_search_clear_his: clearHistorySearch(); @@ -262,7 +255,41 @@ } } + + 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); +// if (suggestFragment.isAdded()) { +// return; +// } + suggestFragment.setItemClickListener(new SearchSuggestFragment.OnItemClickListener() { + @Override + public void onClick(String st) { + Intent intent = new Intent(SearchActivity.this, + SearchResultActivity.class); + intent.putExtra("key", st); + startActivity(intent); + hiddenSuggestFragment(); + } + }); + + 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", ""); @@ -273,19 +300,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(); + } + } }); } @@ -354,7 +391,7 @@ fl_advertisement.post(new Runnable() { @Override public void run() { - int width = fl_advertisement.getWidth()-fl_advertisement.getPaddingLeft()-fl_advertisement.getPaddingRight(); + int width = fl_advertisement.getWidth() - fl_advertisement.getPaddingLeft() - fl_advertisement.getPaddingRight(); new ExpressAdManager(adType, getApplicationContext()).loadSearchAd(DimenUtils.px2dip(getApplicationContext(), width), new ExpressAdManager.IAdLoadListener() { @Override public void onSuccess(List<ExpressAdContainer> adList) { -- Gitblit v1.8.0