0
我有一个片段,它使用Volley从我的服务器获取学生词汇单词列表。单词列表显示在顶部带有FAB的RecyclerView中。我怎样才能连接我的FAB,这样当它被按下时,CardView将显示为像在RecylerView上弹出一样。这样做的目的是使用该CardView作为与另一个脚本进行通信的表单,以允许用户输入一个单词以添加到列表中。当点击CardView上的按钮时,它应该运行POST脚本并消失。这是可行的在一个单一的片段?如何在FAB被触摸时呈现CardView
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.words_ui, container, false);
ButterKnife.bind(this, view);
wordRecyclerView = (RecyclerView) view.findViewById(R.id.wordsRecyclerView);
wordRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
wordRecyclerView.addItemDecoration(new VerticalSpaceItemDecoration(VERTICAL_ITEM_SPACE));
mWordAdapter = new WordAdapter(getActivity());
wordRecyclerView.setAdapter(mWordAdapter);
TextView clientTextView = (TextView) view.findViewById(R.id.clientText);
Bundle args = getActivity().getIntent().getExtras();
final String username = args.getString("USER_NAME");
clientTextView.setText("Word List For: " + username);
FloatingActionButton wordButton = (FloatingActionButton) view.findViewById(R.id.wordFloatingButton);
wordButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getActivity(), "Button was clicked", Toast.LENGTH_LONG).show();
}
});
sendRequest();
return view;
}
private void sendRequest() {
Bundle args = getActivity().getIntent().getExtras();
final String username = args.getString("USER_NAME");
final String URL = JSON_URL + username;
JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, URL, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
mWordArrayList = parseJSONResponse(response);
mWordAdapter.setWordArrayList(mWordArrayList);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
RequestQueue requestQueue = Volley.newRequestQueue(getActivity());
requestQueue.add(request);
}
public ArrayList<Word> parseJSONResponse(JSONObject response) {
ArrayList<Word> mWordArrayList = new ArrayList<Word>();
if (response == null || response.length() == 0) {
}
try {
JSONArray jsonArray = response.getJSONArray(JSON_ARRAY);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject usersWords = jsonArray.getJSONObject(i);
String words = usersWords.getString(KEY_WORD);
String addbys = usersWords.getString(KEY_ADDBY);
Word word = new Word(words, addbys);
word.setWord(words);
word.setAddby("Added by: " + addbys);
mWordArrayList.add(word);
}
} catch (JSONException e) {
e.printStackTrace();
}
return mWordArrayList;
}