You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
252 lines
9.6 KiB
252 lines
9.6 KiB
package com.example.share2;
|
|
|
|
import androidx.annotation.RequiresApi;
|
|
import androidx.appcompat.app.AppCompatActivity;
|
|
|
|
import android.content.SharedPreferences;
|
|
import android.graphics.Color;
|
|
import android.graphics.drawable.ColorDrawable;
|
|
import android.os.Build;
|
|
import android.os.Bundle;
|
|
import android.os.Handler;
|
|
import android.os.Looper;
|
|
import android.os.Message;
|
|
import android.util.Log;
|
|
import android.view.View;
|
|
import android.view.inputmethod.InputMethodManager;
|
|
import android.widget.Button;
|
|
import android.widget.EditText;
|
|
import android.widget.ImageView;
|
|
import android.widget.LinearLayout;
|
|
import android.widget.ListView;
|
|
import android.widget.RelativeLayout;
|
|
import android.widget.TextView;
|
|
import android.widget.Toast;
|
|
import android.content.Context;
|
|
import com.bumptech.glide.Glide;
|
|
import com.example.share2.fragment.comment.CommentAdapter;
|
|
import com.example.share2.fragment.comment.CommentData;
|
|
import com.example.share2.fragment.photo.PhotoData;
|
|
import com.example.share2.fragment.photo.Record;
|
|
import com.google.gson.Gson;
|
|
import com.google.gson.reflect.TypeToken;
|
|
|
|
import java.io.IOException;
|
|
import java.lang.reflect.Type;
|
|
import java.util.ArrayList;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
import okhttp3.Call;
|
|
import okhttp3.Callback;
|
|
import okhttp3.Headers;
|
|
import okhttp3.OkHttpClient;
|
|
import okhttp3.Request;
|
|
import okhttp3.RequestBody;
|
|
import okhttp3.Response;
|
|
|
|
public class CommentActivity extends AppCompatActivity {
|
|
|
|
private Record record;
|
|
private static List<CommentData> commentDataList;
|
|
private static ListView listView;
|
|
private static ImageView imageViewComm;
|
|
private static TextView hide_down ;
|
|
private static EditText comEdit;
|
|
private static Button bsend;
|
|
private static CommentAdapter commentAdapter;
|
|
private LinearLayout rl_enroll;
|
|
private RelativeLayout rl_comment;
|
|
SharedPreferences sp;
|
|
|
|
private static final Handler mHandler = new Handler(Looper.getMainLooper()){
|
|
public void handleMessage(Message msg){
|
|
ResponseBody<PhotoData<List<CommentData>>> photoDataResponseBody;
|
|
switch (msg.what) {
|
|
case 1:
|
|
photoDataResponseBody = (ResponseBody<PhotoData<List<CommentData>>>) msg.obj;
|
|
PhotoData<List<CommentData>> commentData = photoDataResponseBody.getData();
|
|
if (commentData == null)//防止崩溃
|
|
{
|
|
Log.d("失败哦","ssss");
|
|
break;
|
|
}
|
|
List<CommentData> l;
|
|
l = commentData.getRecords();
|
|
|
|
for(CommentData commentData1:l)
|
|
commentAdapter.add(commentData1);
|
|
commentAdapter.notifyDataSetChanged();
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
setContentView(R.layout.activity_comment);
|
|
this.getSupportActionBar().hide();
|
|
|
|
sp = getSharedPreferences("config", Context.MODE_PRIVATE);
|
|
|
|
|
|
record = (Record) getIntent().getSerializableExtra("record");
|
|
commentDataList = new ArrayList<CommentData>();
|
|
CommentData c = new CommentData();
|
|
c.setAuthor(record.getUsername());
|
|
c.setTitle(record.getTitle());
|
|
c.setUrl(record.getImageUrlList().get(0));
|
|
commentDataList.add(c);
|
|
commentAdapter = new CommentAdapter(this,R.layout.comment_item,commentDataList);
|
|
listView = findViewById(R.id.lv_comment_list);
|
|
listView.setAdapter(commentAdapter);
|
|
getData();
|
|
|
|
hide_down = findViewById(R.id.hide_down);
|
|
comEdit = findViewById(R.id.comment_content);
|
|
bsend = findViewById(R.id.comment_send);
|
|
rl_enroll = (LinearLayout) findViewById(R.id.rl_enroll);
|
|
rl_comment = (RelativeLayout) findViewById(R.id.rl_comment);
|
|
|
|
imageViewComm = findViewById(R.id.commentgive);
|
|
imageViewComm.setOnClickListener(new View.OnClickListener() {
|
|
@RequiresApi(api = Build.VERSION_CODES.M)
|
|
@Override
|
|
public void onClick(View view) {
|
|
InputMethodManager imm = (InputMethodManager) getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE);
|
|
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
|
|
rl_enroll.setVisibility(View.GONE);
|
|
rl_comment.setVisibility(View.VISIBLE);
|
|
}
|
|
});
|
|
hide_down.setOnClickListener(new View.OnClickListener() {
|
|
@Override
|
|
public void onClick(View view) {
|
|
rl_enroll.setVisibility(View.VISIBLE);
|
|
rl_comment.setVisibility(View.GONE);
|
|
InputMethodManager im = (InputMethodManager)getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE);
|
|
im.hideSoftInputFromWindow(comEdit.getWindowToken(), 0);
|
|
}
|
|
});
|
|
bsend.setOnClickListener(new View.OnClickListener() {
|
|
@Override
|
|
public void onClick(View view) {
|
|
if(comEdit.getText().toString().equals("")){
|
|
Toast.makeText(CommentActivity.this, "评论不能为空哦!", Toast.LENGTH_SHORT).show();
|
|
}
|
|
else {
|
|
CommentData c = new CommentData();
|
|
c.setContent(comEdit.getText().toString());
|
|
String temp = sp.getString("username","");
|
|
c.setUserName(temp);
|
|
commentAdapter.add(c);
|
|
commentAdapter.notifyDataSetChanged();
|
|
pushData(comEdit.getText().toString());
|
|
InputMethodManager im = (InputMethodManager)getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE);
|
|
im.hideSoftInputFromWindow(comEdit.getWindowToken(), 0);
|
|
|
|
}
|
|
}
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void getData(){
|
|
ConnectServer connectServer = new ConnectServer();
|
|
Map<String,String> addHeader = new HashMap<>();
|
|
addHeader.put("Content-Type","application/json");
|
|
Headers headers = connectServer.getHeaders(addHeader);
|
|
|
|
|
|
HashMap bodyParams = new HashMap<>();
|
|
|
|
bodyParams.put("shareId",record.getId());
|
|
|
|
String url = Constants.SERVER_URL+Constants.USER_COMMENT_FIRST+connectServer.getBodyParams(bodyParams);
|
|
|
|
OkHttpClient client = new OkHttpClient();
|
|
Request request = new Request.Builder().url(url)
|
|
.headers(headers).get().build();
|
|
|
|
Call call = client.newCall(request);
|
|
call.enqueue(new Callback() {
|
|
@Override
|
|
public void onFailure(Call call, IOException e) {
|
|
Log.d("获取一级评论失败","sssss");
|
|
}
|
|
|
|
@Override
|
|
public void onResponse(Call call, Response response) throws IOException {
|
|
final String Rbody = response.body().string();
|
|
Gson gson = new Gson();
|
|
Type jsonType = new TypeToken<ResponseBody<PhotoData<List<CommentData>>>>(){}.getType();
|
|
ResponseBody<PhotoData<List<CommentData>>> dataResponseBody = gson.fromJson(Rbody,jsonType);
|
|
Message message = new Message();
|
|
message.what = 1;
|
|
message.obj = dataResponseBody;
|
|
mHandler.sendMessage(message);
|
|
Log.d("获取一级评论成功","sssss");
|
|
}
|
|
});
|
|
}
|
|
|
|
private void pushData(String commtent){
|
|
ConnectServer connectServer = new ConnectServer();
|
|
Map<String,String> addHeader = new HashMap<>();
|
|
addHeader.put("Content-Type","application/json");
|
|
Headers headers = connectServer.getHeaders(addHeader);
|
|
|
|
Map<String,String> bodyParams = new HashMap<>();
|
|
bodyParams.put("shareId",record.getId());
|
|
String userId = sp.getString("id","");
|
|
String userName = sp.getString("username","");
|
|
bodyParams.put("userId",userId);
|
|
bodyParams.put("userName",userName);
|
|
bodyParams.put("content",commtent);
|
|
RequestBody r_body = connectServer.getJsonBody(bodyParams);
|
|
String url = Constants.SERVER_URL+Constants.USER_COMMENT_FIRST;
|
|
|
|
OkHttpClient client = new OkHttpClient();
|
|
Request request = new Request.Builder().url(url)
|
|
.headers(headers).post(r_body).build();
|
|
|
|
Call call = client.newCall(request);
|
|
call.enqueue(new Callback() {
|
|
@Override
|
|
public void onFailure(Call call, IOException e) {
|
|
Log.d("获取一级评论失败","sssss");
|
|
}
|
|
|
|
@Override
|
|
public void onResponse(Call call, Response response) throws IOException {
|
|
final String Rbody = response.body().string();
|
|
Gson gson = new Gson();
|
|
// Type jsonType = new TypeToken<ResponseBody<PhotoData<List<CommentData>>>>(){}.getType();
|
|
// ResponseBody<PhotoData<List<CommentData>>> dataResponseBody = gson.fromJson(Rbody,jsonType);
|
|
// Message message = new Message();
|
|
// message.what = 1;
|
|
// message.obj = dataResponseBody;
|
|
// mHandler.sendMessage(message);
|
|
// Log.d("获取一级评论成功","sssss");
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |