场合 正如主题建议的那样,我正在开发一个简单的应用程序,简单到仅仅是一些片段。该应用程序很简单,我从在线服务器查询项目。 但是,在应用程序中我想实现搜索。
问题
虽然我在搜索方面有点经验,但似乎无法在我的片段中使用它。当我点击“搜索”时,会出现一个空白屏幕,但没有结果。
到目前为止我做了什么
到目前为止,我已经写了我的搜索和排球,我有理由相信是好的。
也在public View onCreateView(LayoutInflater inflater,ViewGroup容器, Bundle savedInstanceState){
onCreateView是灰色的,表示它没有被调用或在任何地方使用。放置的断点也未激活。相信我永远不会参加那项活动。 谢谢
public class MySearchableActivity extends ActionBarActivity {
RequestQueue requestQueue;
List<NumberResults> storiesList = new ArrayList<>();
private RecyclerView recycle;
private Toolbar toolbar;
final Context context = this;
// @Override
//protected void onCreate(Bundle savedInstanceState)
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//super.onCreate(savedInstanceState);
// setContentView(R.layout.fragment_numbers);
toolbar = (Toolbar) findViewById(R.id.app_bar);
setSupportActionBar(toolbar);
Log.i(TAG, "in MySearchableActivity");
View layout = inflater.inflate(R.layout.fragment_numbers, container, false);
recycle = (RecyclerView) layout.findViewById(R.id.drawrList);
recycle.setLayoutManager(new LinearLayoutManager(this));
recycle.setHasFixedSize(true);
Intent intent = getIntent();
handleIntent(intent);
return layout;
}
private void handleIntent(Intent intent) {
// get the query out of the intent
if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
String searchQuery = intent.getStringExtra(SearchManager.QUERY);
doSearchQuery(searchQuery);
}
}
@Override
protected void onNewIntent(Intent intent) {
Log.i(TAG, "in onNewIntent");
setIntent(intent);
handleIntent(intent);
}
private void doSearchQuery(String query) {
final NumAdapters rvAdapter = new NumAdapters(storiesList);
recycle.setAdapter(rvAdapter);
requestQueue = Volley.newRequestQueue(this);
String url = "http://webserver.com/searchablewho.php?owner=" + query;
JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(url, new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
try {
if (response.length() > 0) {
storiesList.clear();
for (int i = 0; i < response.length(); i++) {
JSONObject jsonObject = response.getJSONObject(i);
NumberResults stories = new NumberResults();
if (!jsonObject.isNull("number")) {
stories.name = jsonObject.getString("number");
}
if (!jsonObject.isNull("owner")) {
stories.age = jsonObject.getString("owner");
}
storiesList.add(i, stories);
}
rvAdapter.notifyDataSetChanged();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// do something
}
});
requestQueue.add(jsonArrayRequest);
}
答案 0 :(得分:0)
您正在扩展ActionBarActivity而不是Fragment。这就是永远不会调用onCreateView方法的原因。