android - 如何通过json POST方法在android应用中完美实现评论选项
问题描述
我有一个与新闻相关的 json api url,我已经实现了对 url 的评论发布,但没有显示来自 textview 中相同新闻 id 的响应中的已发布参数评论。我也使用了共享首选项,但效果不佳。请任何人帮助我。谢谢。这是我的代码:
holder.btnpost.setOnClickListener( view -> {
String comment = holder.inputcomment.getText().toString();
sp = new SharedPreferencesHandler( context );
session = new SessionManager( this.context );
if (!comment.isEmpty() && session.isLoggedIn()) {
commentPost( comment );
} else if (!session.isLoggedIn()) {
Toast.makeText( context, "Please Sign in first!", Toast.LENGTH_LONG ).show();
} else {
Toast.makeText( context, "Please write something!", Toast.LENGTH_LONG ).show();
}
} );
//post method
private void commentPost(final String comment) {
sp = new SharedPreferencesHandler( context );
commentDataList = new ArrayList<>();
String tag_comments = "comment";
StringRequest stringRequest = new StringRequest( Request.Method.POST, commentURL + currentId, response -> {
Log.d( "TAG", "response = " + response );
if (response != null) {`enter code here`
try {
JSONObject jsonResponse = new JSONObject( response );
JSONArray jsonArray = jsonResponse.getJSONArray( "success" );
if (jsonArray != null && jsonArray.length() > 0) {
for (int i = 0; i < jsonArray.length(); i++) {`enter code here`
JSONObject dataOjbect = jsonArray.getJSONObject( i );
String mComment = dataOjbect.getString( "comment" );
Comment mCommentData = new Comment( mComment );
commentDataList.add( mCommentData );
displayComment.setText( mCommentData.getComment() );
}
}
} catch (JSONException e) {
e.printStackTrace();
}
Toast.makeText( context, "Commented", Toast.LENGTH_LONG ).show();
}
},
error -> {
Log.d( "TAG", "Error = " + error );
Toast.makeText( context, "No comment posted", Toast.LENGTH_LONG ).show();
} )
{
@Override
public Map<String, String> getParams() {
Map<String, String> params = new HashMap<>();
params.put( "comment", comment );
return params;
}
@Override
public Map<String, String> getHeaders() {
SharedPreferences mPrefs = context.getSharedPreferences( "radiobanglany", Context.MODE_PRIVATE );
Map<String, String> headers = new HashMap<>();
headers.put( "Accept", "application/json" );
headers.put( "Authorization",
"Bearer"+mPrefs.getString("token", "" ) );
return headers;
}
};
AppController.getInstance().addToRequestQueue(stringRequest, "tag_comments");
}
解决方案
推荐阅读
- vba - 为什么我的 Dlookup 中有语法错误
- python - 数组是(800, )维,每个元素都是(240, )维,怎么改成(800, 240)
- php - 如果mysql不返回结果或为空,我将如何显示消息
- javascript - 脚本在 ExtendScript Toolkit 中正确执行,但在 Illustrator 中不正确
- coldfusion - 将数据传递给使用函数的成员函数
- javascript - 复选框状态的更改无法识别 ReactJS
- tsc - TS2538:类型“唯一符号”不能用作索引类型
- python - 如何以负和正元素作为第一层的输入来训练卷积神经网络?
- c# - 将gridview与水晶报告绑定后...我收到错误报告没有表格
- javascript - 如何完全删除 d3 forceSimulation 及其拖动处理程序