Merge remote-tracking branch 'origin/master'

# Conflicts:
#	Code/LeudaemiaLikeMe/app/src/main/AndroidManifest.xml
#	Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Activity/BaseActivity.java
#	Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Activity/ConcernedProblemActivity.java
#	Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Adapter/QuestionAdapter.java
#	Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/MyFragment.java
#	Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Model/Blog.java
#	Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Model/Question.java
#	Code/LeudaemiaLikeMe/app/src/main/res/layout/question_item.xml
master
Jane 3 years ago
commit 9a9a6cd05d

@ -23,10 +23,12 @@
<activity android:name=".Activity.AlarmAlert" /> <activity android:name=".Activity.AlarmAlert" />
<activity android:name=".ClockDetail" /> <activity android:name=".ClockDetail" />
<activity android:name=".Activity.AnswerActivity"></activity>
<activity android:name=".Activity.QuestionDetailActivity" />
<meta-data <meta-data
android:name="com.google.android.actions" android:name="com.google.android.actions"
android:resource="@xml/network_security_config" /> android:resource="@xml/network_security_config" />
<activity android:name=".Activity.BaseActivity"/> <activity android:name=".Activity.BaseActivity"/>
<activity android:name=".Activity.MainActivity" /> <activity android:name=".Activity.MainActivity" />
<activity android:name=".Activity.ChatActivity" /> <activity android:name=".Activity.ChatActivity" />

@ -1,14 +1,105 @@
package com.example.leudaemialikeme.Activity; package com.example.leudaemialikeme.Activity;
import android.os.Bundle; import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.HorizontalScrollView;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import com.example.leudaemialikeme.R; import androidx.fragment.app.FragmentManager;
import androidx.viewpager.widget.ViewPager;
public class APNActivity extends BaseActivity { import com.example.leudaemialikeme.Adapter.APNPageActivityAdapter;
import com.example.leudaemialikeme.R;
public class APNActivity extends BaseActivity implements ViewPager.OnPageChangeListener{
private static final String ARG_CHANNEL_LIST = "channel_list";
private View view=null; // 碎片的布局实例
private ViewPager viewPager; //内导航的碎片的容器
private RadioGroup rgChannel=null; // 内导航由单选按钮组构成
private HorizontalScrollView hvChannel=null; //单选按钮组可滚动动
private ImageView apn_back;
private String[] channelList = {"回答","帖子"}; //默认的内导航栏目
private APNPageActivityAdapter adapter; //viewPager 的适配器
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_apn); setContentView(R.layout.activity_apn);
viewPager = findViewById(R.id.vpNewsList);
initViewPager(); //设置 ViewPager
rgChannel = findViewById(R.id.rgChannel);
hvChannel = findViewById(R.id.hvChannel);
initTab(getLayoutInflater());
rgChannel.setOnCheckedChangeListener(
new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
viewPager.setCurrentItem(checkedId);
}
}
);
apn_back = findViewById(R.id.apn_back);
apn_back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
private void initViewPager() {
FragmentManager fragmentManager = getSupportFragmentManager();
adapter = new APNPageActivityAdapter(fragmentManager, channelList);
//参数 channelList 将被适配器用来在动态切换碎片的时候实时创建碎片 //设置 ViewPager 的适配器
viewPager.setAdapter(adapter);
viewPager.setOffscreenPageLimit(2);
//设置显示第 1 个碎片
viewPager.setCurrentItem(0);
//设置 ViewPager 的切换监听
viewPager.addOnPageChangeListener(this);
}
private void initTab(LayoutInflater inflater) {
for(int i=0;i<channelList.length;i++){
RadioButton rb=(RadioButton)inflater.inflate(R.layout.invitation_tab_rb,null);
rb.setId(i);
rb.setText(channelList[i]);
RadioGroup.LayoutParams params = new
RadioGroup.LayoutParams(RadioGroup.LayoutParams.WRAP_CONTENT,
RadioGroup.LayoutParams.WRAP_CONTENT);
rgChannel.addView(rb,params);
}
rgChannel.check(0);
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
setTab(position);
}
@Override
public void onPageScrollStateChanged(int state) {
}
private void setTab(int idx){
RadioButton rb=(RadioButton)rgChannel.getChildAt(idx);
rb.setChecked(true);
int left=rb.getLeft();
int width=rb.getMeasuredWidth();
DisplayMetrics metrics=new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int screenWidth=metrics.widthPixels;
int len=left+width/2-screenWidth/2;
hvChannel.smoothScrollTo(len,0);
} }
} }

@ -0,0 +1,117 @@
package com.example.leudaemialikeme.Activity;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import com.example.leudaemialikeme.R;
import com.example.leudaemialikeme.Utils.OkHttpUtil;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.Response;
public class AnswerActivity extends AppCompatActivity {
private TextView text_answer_cancel;
private TextView text_answer_commit;
private TextView text_question_name;
private EditText edit_answer_detail;
private int qid;
private String qtitle;
@Override
protected void onCreate(Bundle savedInstanceState) {
Intent intent = getIntent();
qid = intent.getIntExtra("qid", -1);
qtitle = intent.getStringExtra("qtitle");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_answer);
text_answer_cancel = findViewById(R.id.text_answer_cancel);
text_answer_commit = findViewById(R.id.text_answer_commit);
text_question_name = findViewById(R.id.text_question_name);
edit_answer_detail = findViewById(R.id.text_answer_detail);
text_question_name.setText(qtitle);
text_answer_cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
text_answer_commit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(edit_answer_detail.getText().toString().equals("")){
Toast.makeText(AnswerActivity.this, "请输入回答内容", Toast.LENGTH_SHORT).show();
}else{
AlertDialog.Builder builder = new AlertDialog.Builder(AnswerActivity.this);
builder.setTitle("是否确认提交回答?");
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(AnswerActivity.this, "已取消回答", Toast.LENGTH_SHORT).show();
}
});
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String content = edit_answer_detail.getText().toString();
Map<String, String> params = new HashMap<>();
params.put("answerContent", content);
sendAnswer(params);
}
});
builder.show();
}
}
});
}
private void sendAnswer(Map params){
new Thread(new Runnable() {
@Override
public void run() {
try{
String url = LoginActivity.SERVER_URL+"/main-servlet?action=sendAnswer&iduser="+ BaseActivity.owner.getNetId()+"&qid="+qid;
OkHttpUtil.asyPost(url, params,new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String jsonStr = response.body().string();
runOnUiThread(new Runnable(){
@Override
public void run() {
if(jsonStr.equals("success")){
Toast.makeText(getApplicationContext(), "回答成功", Toast.LENGTH_SHORT).show();
finish();
}else {
Toast.makeText(getApplicationContext(), "回答失败", Toast.LENGTH_SHORT).show();
}
}
});
}
});
}catch (Exception e){
e.printStackTrace();
}
}
}).start();
}
}

@ -1,37 +1,82 @@
package com.example.leudaemialikeme.Activity; package com.example.leudaemialikeme.Activity;
import android.os.Bundle; import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.example.leudaemialikeme.Adapter.MyQuestionAdapter; import com.example.leudaemialikeme.Adapter.MyQuestionAdapter;
import com.example.leudaemialikeme.Model.MyQuestion; import com.example.leudaemialikeme.Model.Question;
import com.example.leudaemialikeme.R; import com.example.leudaemialikeme.R;
import com.example.leudaemialikeme.Utils.OkHttpUtil;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.Response;
public class MyQuestionActivity extends BaseActivity { public class MyQuestionActivity extends BaseActivity {
private List<MyQuestion> mData = new ArrayList<>(); private List<Question> questionList = new ArrayList<>();
RecyclerView recycleView;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_question); setContentView(R.layout.activity_my_question);
getData();//获得数据 recycleView = findViewById(R.id.my_question_list);//获得视图
RecyclerView recycleView = (RecyclerView) findViewById(R.id.myQuestionList);//获得视图
LinearLayoutManager layoutManager; LinearLayoutManager layoutManager;
layoutManager = new LinearLayoutManager(this); layoutManager = new LinearLayoutManager(this);
recycleView.setLayoutManager(layoutManager);//建立线性布局 recycleView.setLayoutManager(layoutManager);//建立线性布局
MyQuestionAdapter adapter = new MyQuestionAdapter(mData);//创建适配器 MyQuestionAdapter adapter = new MyQuestionAdapter(questionList, MyQuestionActivity.this);//创建适配器
recycleView.setAdapter(adapter);//将视图与适配器连接起来
getMyQustionList();
ImageView my_question_back = findViewById(R.id.my_question_back);
my_question_back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
private void getMyQustionList() {
new Thread(new Runnable() {
@Override
public void run() {
try{
String url = LoginActivity.SERVER_URL+"/my-servlet?action=getMyQuestionList&iduser="+ BaseActivity.owner.getNetId();
OkHttpUtil.asyGet(url, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String jsonStr = response.body().string();
Gson gson = new Gson();
questionList = gson.fromJson(jsonStr, new TypeToken<List<Question>>() {}.getType());
runOnUiThread(new Runnable(){
@Override
public void run() {
MyQuestionAdapter adapter = new MyQuestionAdapter(questionList, MyQuestionActivity.this);//创建适配器
recycleView.setAdapter(adapter);//将视图与适配器连接起来 recycleView.setAdapter(adapter);//将视图与适配器连接起来
} }
});
}
});
private void getData() { }catch (Exception e){
MyQuestion q1 = new MyQuestion("成人白血病的早期症状有什么?","2浏览","22:24"); e.printStackTrace();
mData.add(q1); }
MyQuestion q2 = new MyQuestion("幼儿易得白血病吗?","56浏览","09:11");
mData.add(q2);
} }
}).start();
}
} }

@ -0,0 +1,255 @@
package com.example.leudaemialikeme.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.example.leudaemialikeme.Adapter.QuestionDetailAdapter;
import com.example.leudaemialikeme.Model.AnswerItemView;
import com.example.leudaemialikeme.R;
import com.example.leudaemialikeme.Utils.OkHttpUtil;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.Response;
public class QuestionDetailActivity extends AppCompatActivity {
private ImageView question_back;
private ImageView detail_to_search;
private TextView text_question_title;
private TextView text_author;
private TextView text_question_content;
private ImageView img_invite_to_answer;
private ImageView img_go_write_answer;
private ImageView img_follow_question;
private TextView text_follow_question;
private TextView text_answer_num;
private RecyclerView recyclerView_answer;
private List<AnswerItemView> answerList = new ArrayList<>();
private int qid;
private boolean isPause = false;
private int hasFollow;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_question_detail);
Intent intent = getIntent();
qid = intent.getIntExtra("qid", -1);
question_back = findViewById(R.id.question_back);
detail_to_search = findViewById(R.id.detail_to_search);
text_question_title = findViewById(R.id.text_question_title);
text_question_content = findViewById(R.id.text_question_content);
text_author = findViewById(R.id.text_author);
img_invite_to_answer = findViewById(R.id.img_invite_to_answer);
img_go_write_answer = findViewById(R.id.img_go_write_answer);
img_follow_question = findViewById(R.id.img_follow_question);
text_follow_question = findViewById(R.id.text_follow_question);
text_answer_num = findViewById(R.id.text_answer_num);
recyclerView_answer = findViewById(R.id.recyclerView_answer);
LinearLayoutManager layoutManager;
layoutManager = new LinearLayoutManager(this);
recyclerView_answer.setLayoutManager(layoutManager);//建立线性布局
QuestionDetailAdapter adapter = new QuestionDetailAdapter(answerList);//创建适配器
recyclerView_answer.setAdapter(adapter);//将视图与适配器连接起来
getQuestionDetail();
//各种组件的动作设置
//返回键
question_back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
//搜索键
detail_to_search.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//TODO 跳转到搜索页面
}
});
//邀请回答
img_invite_to_answer.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//TODO 邀请回答功能待完善,目前不实现
}
});
//写回答
img_go_write_answer.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(QuestionDetailActivity.this, AnswerActivity.class);
intent.putExtra("qid",qid);
intent.putExtra("qtitle",text_question_title.getText().toString());
startActivity(intent);
}
});
//关注问题
img_follow_question.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(hasFollow==0){
followQuestion();
}else{
cancelFollowQuestion();
}
}
});
}
private void cancelFollowQuestion() {
new Thread(new Runnable() {
@Override
public void run() {
try{
String url = LoginActivity.SERVER_URL+"/main-servlet?action=cancelFollowQuestion&qid="+qid+"&iduser="+BaseActivity.owner.getNetId();
OkHttpUtil.asyGet(url, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String jsonStr = response.body().string();
runOnUiThread(new Runnable(){
@Override
public void run() {
if(jsonStr.equals("success")){
img_follow_question.setImageResource(R.mipmap.follow_question);
text_follow_question.setText("关注问题");
hasFollow=0;
}else{
Toast.makeText(getApplicationContext(), jsonStr,Toast.LENGTH_SHORT).show();
}
}
});
}
});
}catch (Exception e){
e.printStackTrace();
}
}
}).start();
}
private void followQuestion() {
new Thread(new Runnable() {
@Override
public void run() {
try{
String url = LoginActivity.SERVER_URL+"/main-servlet?action=followQuestion&qid="+qid+"&iduser="+BaseActivity.owner.getNetId();
OkHttpUtil.asyGet(url, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String jsonStr = response.body().string();
runOnUiThread(new Runnable(){
@Override
public void run() {
if(jsonStr.equals("success")){
img_follow_question.setImageResource(R.mipmap.has_follow);
text_follow_question.setText("已关注");
hasFollow=1;
}else{
Toast.makeText(getApplicationContext(), jsonStr,Toast.LENGTH_SHORT).show();
}
}
});
}
});
}catch (Exception e){
e.printStackTrace();
}
}
}).start();
}
private void getQuestionDetail() {
new Thread(new Runnable() {
@Override
public void run() {
try{
String url = LoginActivity.SERVER_URL+"/main-servlet?action=getQuestionDetail&qid="+qid+"&iduser="+BaseActivity.owner.getNetId();
OkHttpUtil.asyGet(url, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String jsonStr = response.body().string();
Gson gson = new Gson();
Map<String, String> jsonMap = gson.fromJson(jsonStr, new TypeToken<Map<String, String>>() {}.getType());
answerList = gson.fromJson(jsonMap.get("answerList"), new TypeToken<List<AnswerItemView>>() {}.getType());
runOnUiThread(new Runnable(){
@Override
public void run() {
text_question_title.setText(jsonMap.get("qtitle"));
text_question_content.setText(jsonMap.get("qcontent"));
text_author.setText(jsonMap.get("username"));
String num = ""+ answerList.size() +")";
text_answer_num.setText(num);
QuestionDetailAdapter adapter = new QuestionDetailAdapter(answerList);//创建适配器
recyclerView_answer.setAdapter(adapter);//将视图与适配器连接起来
hasFollow = Integer.parseInt(jsonMap.get("hasFollow"));
if(hasFollow==1){
img_follow_question.setImageResource(R.mipmap.has_follow);
text_follow_question.setText("已关注");
}
}
});
}
});
}catch (Exception e){
e.printStackTrace();
}
}
}).start();
}
@Override
protected void onPause() {
super.onPause();
isPause = true; //记录页面已经被暂停
}
@Override
protected void onResume() {
super.onResume();
if (isPause){ //判断是否暂停
isPause = false;
getQuestionDetail();
QuestionDetailAdapter adapter = new QuestionDetailAdapter(answerList);//创建适配器
recyclerView_answer.setAdapter(adapter);//将视图与适配器连接起来
}
}
}

@ -0,0 +1,30 @@
package com.example.leudaemialikeme.Adapter;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import com.example.leudaemialikeme.Fragment.APNChannelFragment;
public class APNPageActivityAdapter extends FragmentPagerAdapter {
private String[] channelList;
private FragmentManager fm;
public APNPageActivityAdapter(@NonNull FragmentManager fm, String[] channelList) {
super(fm);
this.channelList = channelList;
this.fm = fm;
}
@NonNull
@Override
public Fragment getItem(int position) {
String APNCategoryTitle = channelList[position];
return APNChannelFragment.newInstance(APNCategoryTitle);
}
@Override
public int getCount() {
return channelList.length;
}
}

@ -0,0 +1,72 @@
package com.example.leudaemialikeme.Adapter;
import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.example.leudaemialikeme.Activity.QuestionDetailActivity;
import com.example.leudaemialikeme.Model.MyAnswerItemView;
import com.example.leudaemialikeme.R;
import com.example.leudaemialikeme.Utils.TimeUtil;
import java.util.List;
public class MyAnswerAdapter extends RecyclerView.Adapter<MyAnswerAdapter.ViewHolder>{
private List<MyAnswerItemView> answerList;
private Context context;
public MyAnswerAdapter(List<MyAnswerItemView> answerList, Context context) {
this.answerList = answerList;
this.context = context;
}
static class ViewHolder extends RecyclerView.ViewHolder{
private TextView text_answer_qid;
private TextView text_my_answer_title;
private TextView text_my_answer;
private TextView text_answer_time;
public ViewHolder(@NonNull View itemView) {
super(itemView);
text_answer_qid = itemView.findViewById(R.id.text_answer_qid);
text_my_answer_title = itemView.findViewById(R.id.text_my_answer_title);
text_my_answer = itemView.findViewById(R.id.text_my_answer);
text_answer_time = itemView.findViewById(R.id.text_answer_time);
}
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.my_answer_item,parent,false);
MyAnswerAdapter.ViewHolder holder=new MyAnswerAdapter.ViewHolder(view);
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(context, QuestionDetailActivity.class);
intent.putExtra("qid", Integer.parseInt(holder.text_answer_qid.getText().toString()));
context.startActivity(intent);
}
});
return holder;
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
MyAnswerItemView answer = answerList.get(position);
holder.text_answer_qid.setText(String.valueOf(answer.getQid()));
holder.text_my_answer_title.setText(answer.getQtitle());
holder.text_my_answer.setText(answer.getAcontent());
holder.text_answer_time.setText(TimeUtil.timeToString(answer.getAnswerTime()));
}
@Override
public int getItemCount() {
return answerList.size();
}
}

@ -0,0 +1,74 @@
package com.example.leudaemialikeme.Adapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.example.leudaemialikeme.Model.Blog;
import com.example.leudaemialikeme.R;
import com.example.leudaemialikeme.Utils.TimeUtil;
import java.util.ArrayList;
import java.util.List;
public class MyBlogAdapter extends RecyclerView.Adapter<MyBlogAdapter.ViewHolder>{
List<Blog> blogList = new ArrayList<>();
public MyBlogAdapter(List<Blog> blogList){
this.blogList = blogList;
}
static class ViewHolder extends RecyclerView.ViewHolder{
private TextView text_my_blog_id;
private TextView text_my_blog_title;
private TextView text_my_blog_content;
private TextView text_my_blog_browse;
private TextView text_my_blog_time;
private TextView text_my_blog_flag;
public ViewHolder(@NonNull View itemView) {
super(itemView);
text_my_blog_id = itemView.findViewById(R.id.text_my_blog_id);
text_my_blog_title = itemView.findViewById(R.id.text_my_blog_title);
text_my_blog_content = itemView.findViewById(R.id.text_my_blog_content);
text_my_blog_browse = itemView.findViewById(R.id.text_my_blog_browse);
text_my_blog_time = itemView.findViewById(R.id.text_my_blog_time);
text_my_blog_flag = itemView.findViewById(R.id.text_my_blog_flag);
}
}
@NonNull
@Override
public MyBlogAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.my_blog_item,parent,false);
MyBlogAdapter.ViewHolder holder = new MyBlogAdapter.ViewHolder(view);
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//TODO 跳转到帖子的详情页
}
});
return holder;
}
@Override
public void onBindViewHolder(@NonNull MyBlogAdapter.ViewHolder holder, int position) {
Blog blog = blogList.get(position);
holder.text_my_blog_id.setText(String.valueOf(blog.getBid()));
holder.text_my_blog_title.setText(blog.getBtittle());
holder.text_my_blog_content.setText(blog.getBcontent());
holder.text_my_blog_browse.setText(String.valueOf(blog.getBbrowse()));
holder.text_my_blog_time.setText(TimeUtil.timeToString(blog.getBtime()));
if(blog.getFlag()==1)
holder.text_my_blog_flag.setText("已审核");
}
@Override
public int getItemCount() {
return blogList.size();
}
}

@ -1,5 +1,7 @@
package com.example.leudaemialikeme.Adapter; package com.example.leudaemialikeme.Adapter;
import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -8,30 +10,37 @@ import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.example.leudaemialikeme.Model.MyQuestion; import com.example.leudaemialikeme.Activity.QuestionDetailActivity;
import com.example.leudaemialikeme.Model.Question;
import com.example.leudaemialikeme.R; import com.example.leudaemialikeme.R;
import com.example.leudaemialikeme.Utils.TimeUtil;
import java.util.List; import java.util.List;
public class MyQuestionAdapter extends RecyclerView.Adapter<MyQuestionAdapter.ViewHolder>{ public class MyQuestionAdapter extends RecyclerView.Adapter<MyQuestionAdapter.ViewHolder>{
private List<MyQuestion> myQuestionList; private List<Question> questionList;
private Context context;
//重写构造方法 //重写构造方法
public MyQuestionAdapter(List<MyQuestion> myQuestionList){ public MyQuestionAdapter(List<Question> questionList, Context context){
this.myQuestionList = myQuestionList; this.questionList = questionList;
} this.context = context;
public int getItemCount(){
return myQuestionList.size();
} }
//内部类 //内部类
static class ViewHolder extends RecyclerView.ViewHolder { static class ViewHolder extends RecyclerView.ViewHolder {
TextView questionInfo,questionRead,questionTime; private TextView text_my_question_id;
private TextView text_my_question_title;
private TextView text_my_question_browse;
private TextView text_my_question_time;
private TextView text_my_question_flag;
public ViewHolder(@NonNull View itemView){ public ViewHolder(@NonNull View itemView){
super(itemView); super(itemView);
this.questionInfo = (TextView)itemView.findViewById(R.id.myQuestionInfo); text_my_question_id = itemView.findViewById(R.id.text_my_question_id);
this.questionRead = (TextView)itemView.findViewById(R.id.myQuestionRead); text_my_question_title = itemView.findViewById(R.id.text_my_question_title);
this.questionTime = (TextView)itemView.findViewById(R.id.myQuestionTime); text_my_question_browse = itemView.findViewById(R.id.text_my_question_browse);
text_my_question_time = itemView.findViewById(R.id.text_my_question_time);
text_my_question_flag = itemView.findViewById(R.id.text_my_question_flag);
} }
} }
//重写 onCreateViewHolder()方法 //重写 onCreateViewHolder()方法
@ -39,15 +48,31 @@ public class MyQuestionAdapter extends RecyclerView.Adapter<MyQuestionAdapter.Vi
public MyQuestionAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { public MyQuestionAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.my_question_item,parent,false); View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.my_question_item,parent,false);
MyQuestionAdapter.ViewHolder holder=new MyQuestionAdapter.ViewHolder(view); MyQuestionAdapter.ViewHolder holder=new MyQuestionAdapter.ViewHolder(view);
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(context, QuestionDetailActivity.class);
intent.putExtra("qid", Integer.parseInt(holder.text_my_question_id.getText().toString()));
context.startActivity(intent);
}
});
return holder; return holder;
} }
//重写onBindViewHolder()方法 //重写onBindViewHolder()方法
@Override @Override
public void onBindViewHolder(@NonNull MyQuestionAdapter.ViewHolder holder, int position){ public void onBindViewHolder(@NonNull MyQuestionAdapter.ViewHolder holder, int position){
MyQuestion question = myQuestionList.get(position); Question question = questionList.get(position);
holder.questionInfo.setText(question.getMyQuestionInfo()); holder.text_my_question_id.setText(String.valueOf(question.getQid()));
holder.questionRead.setText(question.getMyQuestionRead()); holder.text_my_question_title.setText(question.getQtittle());
holder.questionTime.setText(question.getMyQuestionTime()); holder.text_my_question_browse.setText(String.valueOf(question.getQbrowseNum()));
holder.text_my_question_time.setText(TimeUtil.timeToString(question.getQtime()));
if(question.getFlag()==1)
holder.text_my_question_flag.setText("已审核");
}
@Override
public int getItemCount(){
return questionList.size();
} }
} }

@ -0,0 +1,57 @@
package com.example.leudaemialikeme.Adapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.example.leudaemialikeme.Model.AnswerItemView;
import com.example.leudaemialikeme.R;
import com.example.leudaemialikeme.Utils.TimeUtil;
import java.util.ArrayList;
import java.util.List;
public class QuestionDetailAdapter extends RecyclerView.Adapter<QuestionDetailAdapter.ViewHolder>{
List<AnswerItemView> answerList = new ArrayList<>();
public QuestionDetailAdapter(List<AnswerItemView> answerList){
this.answerList = answerList;
}
static class ViewHolder extends RecyclerView.ViewHolder {
private TextView text_answer_username;
private TextView text_answer_content;
private TextView text_answer_time;
public ViewHolder(@NonNull View itemView) {
super(itemView);
text_answer_username = itemView.findViewById(R.id.text_answer_username);
text_answer_content = itemView.findViewById(R.id.text_answer_content);
text_answer_time = itemView.findViewById(R.id.text_answer_time);
}
}
@NonNull
@Override
public QuestionDetailAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.answer_item,parent,false);
QuestionDetailAdapter.ViewHolder holder = new QuestionDetailAdapter.ViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(@NonNull QuestionDetailAdapter.ViewHolder holder, int position) {
AnswerItemView answer = answerList.get(position);
holder.text_answer_username.setText(answer.getAnswerAuthor());
holder.text_answer_content.setText(answer.getAnswerContent());
holder.text_answer_time.setText(TimeUtil.timeToString(answer.getAnswerTime()));
}
@Override
public int getItemCount() {
return answerList.size();
}
}

@ -0,0 +1,160 @@
package com.example.leudaemialikeme.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.example.leudaemialikeme.Activity.BaseActivity;
import com.example.leudaemialikeme.Adapter.MyAnswerAdapter;
import com.example.leudaemialikeme.Adapter.MyBlogAdapter;
import com.example.leudaemialikeme.Model.Blog;
import com.example.leudaemialikeme.Model.MyAnswerItemView;
import com.example.leudaemialikeme.R;
import com.example.leudaemialikeme.Utils.OkHttpUtil;
import com.example.leudaemialikeme.Utils.TimeUtil;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.Response;
public class APNChannelFragment extends Fragment {
private static final String ARG_CATEGORY_TITLE = "category_title";
private String APNCategoryTitle = "Default";
private List<MyAnswerItemView> answerList = new ArrayList<>();
private List<Blog> blogList = new ArrayList<>();
private RecyclerView answerRecyclerview;
private RecyclerView blogRecyclerview;
public APNChannelFragment() {
// Required empty public constructor
}
public static APNChannelFragment newInstance(String APNCategoryTitle) {
APNChannelFragment fragment = new APNChannelFragment();
Bundle args = new Bundle();
args.putString(ARG_CATEGORY_TITLE, APNCategoryTitle);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try {
APNCategoryTitle = getArguments().getString(ARG_CATEGORY_TITLE);
} catch (java.lang.NullPointerException e) {
System.out.println("TesFragment getArg error!");
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view;
if (APNCategoryTitle.equals("回答")) {
view = inflater.inflate(R.layout.recyclerview, container, false);
answerRecyclerview = view.findViewById(R.id.list_community);
LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
answerRecyclerview.setLayoutManager(layoutManager);
MyAnswerAdapter adapter = new MyAnswerAdapter(answerList, getContext());
answerRecyclerview.setAdapter(adapter);
getMyAnswerList();
} else if (APNCategoryTitle.equals("帖子")) {
view = inflater.inflate(R.layout.recyclerview, container, false);
blogRecyclerview = view.findViewById(R.id.list_community);
LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
blogRecyclerview.setLayoutManager(layoutManager);
MyBlogAdapter adapter = new MyBlogAdapter(blogList);
blogRecyclerview.setAdapter(adapter);
getMyBlogList();
} else {
view = inflater.inflate(R.layout.fragment_a_p_n_channel, container, false);
}
return view;
}
private void getMyBlogList() {
new Thread(new Runnable() {
@Override
public void run() {
try{
String url = BaseActivity.SERVER_URL+"/my-servlet?action=getMyBlogList&iduser="+BaseActivity.owner.getNetId();
OkHttpUtil.asyGet(url, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String jsonStr = response.body().string();
Gson gson = new Gson();
List<Blog> blogList = gson.fromJson(jsonStr, new TypeToken<List<Blog>>() {}.getType());
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
MyBlogAdapter adapter = new MyBlogAdapter(blogList);
blogRecyclerview.setAdapter(adapter);
}
});
}
});
}catch (Exception e){
e.printStackTrace();
}
}
}).start();
}
private void getMyAnswerList() {
new Thread(new Runnable() {
@Override
public void run() {
try{
String url = BaseActivity.SERVER_URL+"/my-servlet?action=getMyAnswerList&iduser="+BaseActivity.owner.getNetId();
OkHttpUtil.asyGet(url, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String jsonStr = response.body().string();
Gson gson = new Gson();
List<Map<String,String>> list = gson.fromJson(jsonStr, new TypeToken<List<Map<String, String>>>() {}.getType());
for(int i=0; i<list.size(); i++){
Map<String, String> jsonMap = list.get(i);
MyAnswerItemView myAnswerItemView = new MyAnswerItemView();
myAnswerItemView.setQid(Integer.parseInt(jsonMap.get("qid")));
myAnswerItemView.setQtitle(jsonMap.get("qtitle"));
myAnswerItemView.setAcontent(jsonMap.get("content"));
myAnswerItemView.setAnswerTime(TimeUtil.stringToTime(jsonMap.get("answerTime")));
answerList.add(myAnswerItemView);
}
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
MyAnswerAdapter adapter = new MyAnswerAdapter(answerList, getContext());
answerRecyclerview.setAdapter(adapter);
}
});
}
});
}catch (Exception e){
e.printStackTrace();
}
}
}).start();
}
}

@ -13,30 +13,30 @@ import androidx.fragment.app.Fragment;
import com.example.leudaemialikeme.Activity.APNActivity; import com.example.leudaemialikeme.Activity.APNActivity;
import com.example.leudaemialikeme.Activity.AboutActivity; import com.example.leudaemialikeme.Activity.AboutActivity;
import com.example.leudaemialikeme.Activity.AttentionActivity; import com.example.leudaemialikeme.Activity.AttentionActivity;
import com.example.leudaemialikeme.Activity.BaseActivity;
import com.example.leudaemialikeme.Activity.CollectActivity; import com.example.leudaemialikeme.Activity.CollectActivity;
import com.example.leudaemialikeme.Activity.ConcernedProblemActivity; import com.example.leudaemialikeme.Activity.ConcernedProblemActivity;
import com.example.leudaemialikeme.Activity.EventActivity; import com.example.leudaemialikeme.Activity.EventActivity;
import com.example.leudaemialikeme.Activity.HistoryActivity; import com.example.leudaemialikeme.Activity.HistoryActivity;
import com.example.leudaemialikeme.Activity.LoginActivity;
import com.example.leudaemialikeme.Activity.MdctRmdActivity; import com.example.leudaemialikeme.Activity.MdctRmdActivity;
import com.example.leudaemialikeme.Activity.MyQuestionActivity; import com.example.leudaemialikeme.Activity.MyQuestionActivity;
import com.example.leudaemialikeme.Activity.SafetyActivity; import com.example.leudaemialikeme.Activity.SafetyActivity;
import com.example.leudaemialikeme.Model.User;
import com.example.leudaemialikeme.R; import com.example.leudaemialikeme.R;
import com.example.leudaemialikeme.Utils.OkHttpUtil;
import com.google.gson.Gson;
/** import java.io.IOException;
* A simple {@link Fragment} subclass.
* create an instance of this fragment.
*/
public class MyFragment extends Fragment {
// TODO: Rename parameter arguments, choose names that match import okhttp3.Call;
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER import okhttp3.Callback;
private static final String ARG_PARAM1 = "param1"; import okhttp3.Response;
private static final String ARG_PARAM2 = "param2";
// TODO: Rename and change types of parameters
private String mParam1;
private String mParam2;
public class MyFragment extends Fragment {
private User user;
private TextView text_nickname;
public MyFragment() { public MyFragment() {
// Required empty public constructor // Required empty public constructor
@ -45,10 +45,6 @@ public class MyFragment extends Fragment {
@Override @Override
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
if (getArguments() != null) {
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
}
} }
@Override @Override
@ -57,9 +53,43 @@ public class MyFragment extends Fragment {
// Inflate the layout for this fragment // Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_my, container, false); View view = inflater.inflate(R.layout.fragment_my, container, false);
initClick(view); initClick(view);
text_nickname = view.findViewById(R.id.nickname);
getUser();
return view; return view;
} }
private void getUser() {
new Thread(new Runnable() {
@Override
public void run() {
try{
String url = LoginActivity.SERVER_URL+"/my-servlet?action=getUser&username="+ BaseActivity.owner.getUsername();
OkHttpUtil.asyGet(url, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String jsonStr = response.body().string();
Gson gson = new Gson();
user = gson.fromJson(jsonStr, User.class);
getActivity().runOnUiThread(new Runnable(){
@Override
public void run() {
text_nickname.setText(user.getUsername());
}
});
}
});
}catch (Exception e){
e.printStackTrace();
}
}
}).start();
}
private void initClick(View view) { private void initClick(View view) {
//关注的问题,提醒和大事记的线性布局 //关注的问题,提醒和大事记的线性布局
LinearLayout remindLinear = view.findViewById(R.id.my_remind_linear); LinearLayout remindLinear = view.findViewById(R.id.my_remind_linear);

@ -0,0 +1,43 @@
package com.example.leudaemialikeme.Model;
import java.sql.Timestamp;
public class AnswerItemView {
private String answerAuthor;
private String answerContent;
private Timestamp answerTime;
public AnswerItemView(){
}
public AnswerItemView(String answerAuthor, String answerContent, Timestamp answerTime) {
this.answerAuthor = answerAuthor;
this.answerContent = answerContent;
this.answerTime = answerTime;
}
public String getAnswerAuthor() {
return answerAuthor;
}
public void setAnswerAuthor(String answerAuthor) {
this.answerAuthor = answerAuthor;
}
public String getAnswerContent() {
return answerContent;
}
public void setAnswerContent(String answerContent) {
this.answerContent = answerContent;
}
public Timestamp getAnswerTime() {
return answerTime;
}
public void setAnswerTime(Timestamp answerTime) {
this.answerTime = answerTime;
}
}

@ -5,7 +5,6 @@ import java.sql.Timestamp;
public class Blog implements Serializable { public class Blog implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private int bid; private int bid;
private int uid; private int uid;
private String btype; private String btype;
@ -17,9 +16,12 @@ public class Blog implements Serializable {
private int bbrowse; private int bbrowse;
private int flag; private int flag;
public Blog(){} public Blog() {
}
public Blog(int bid, int uid, String btype, String btittle, String bcontent, Timestamp btime, int blikeNum, int bcollectNum, int bbrowse, int flag) { public Blog(int bid,int uid,String btype,String btittle,String bcontent,Timestamp btime,int blikeNum,
int bcollectNum,int bbrowse,int flag) {
this.bid=bid; this.bid=bid;
this.uid=uid; this.uid=uid;
this.btype=btype; this.btype=btype;
@ -30,68 +32,66 @@ public class Blog implements Serializable {
this.bcollectNum=bcollectNum; this.bcollectNum=bcollectNum;
this.bbrowse=bbrowse; this.bbrowse=bbrowse;
this.flag=flag; this.flag=flag;
}
public int getBid() {
return bid;
}
public int getUid() {
return uid;
}
public String getBtype() {
return btype;
}
public String getBtittle() {
return btittle;
}
public String getBcontent() {
return bcontent;
}
public Timestamp getBtime() {
return btime;
} }
public int getBlikeNum() { public Blog(int uid,String btype,String btittle,String bcontent,Timestamp btime,int blikeNum,
return blikeNum; int bcollectNum,int bbrowse,int flag) {
} this.uid=uid;
this.btype=btype;
public int getBcollectNum() { this.btittle=btittle;
return bcollectNum; this.bcontent=bcontent;
this.btime=btime;
this.blikeNum=blikeNum;
this.bcollectNum=bcollectNum;
this.bbrowse=bbrowse;
this.flag=flag;
} }
public int getBbrowse() { public void setUid(int uid) {
return bbrowse; this.uid=uid;
} }
public int getFlag() { public int getUid() {
return flag; return uid;
} }
public void setBid(int bid) { public void setBid(int bid) {
this.bid=bid; this.bid=bid;
} }
public void setUid(int uid) { public int getBid() {
this.uid = uid; return bid;
} }
public void setBtype(String btype) { public void setBtype(String btype) {
this.btype=btype; this.btype=btype;
} }
public String getBtype() {
return btype;
}
public void setBtittle(String btittle) { public void setBtittle(String btittle) {
this.btittle=btittle; this.btittle=btittle;
} }
public String getBtittle() {
return btittle;
}
public void setBcontent(String bcontent) { public void setBcontent(String bcontent) {
this.bcontent=bcontent; this.bcontent=bcontent;
} }
public String getBcontent() {
return bcontent;
}
public Timestamp getBtime() {
return btime;
}
public void setBtime(Timestamp btime) { public void setBtime(Timestamp btime) {
this.btime=btime; this.btime=btime;
} }
@ -100,15 +100,33 @@ public class Blog implements Serializable {
this.blikeNum=blikeNum; this.blikeNum=blikeNum;
} }
public int getBlikeNum() {
return blikeNum;
}
public void setBcollectNum(int bcollectNum) { public void setBcollectNum(int bcollectNum) {
this.bcollectNum=bcollectNum; this.bcollectNum=bcollectNum;
} }
public int getBcollectNum() {
return bcollectNum;
}
public void setBbrowse(int bbrowse) { public void setBbrowse(int bbrowse) {
this.bbrowse=bbrowse; this.bbrowse=bbrowse;
} }
public int getBbrowse() {
return bbrowse;
}
public int getFlag() {
return flag;
}
public void setFlag(int flag) { public void setFlag(int flag) {
this.flag=flag; this.flag=flag;
} }
} }

@ -0,0 +1,53 @@
package com.example.leudaemialikeme.Model;
import java.sql.Timestamp;
public class MyAnswerItemView {
private int qid;
private String qtitle;
private String acontent;
private Timestamp answerTime;
public MyAnswerItemView(){
}
public MyAnswerItemView(int qid, String qtitle, String acontent, Timestamp answerTime) {
this.qid = qid;
this.qtitle = qtitle;
this.acontent = acontent;
this.answerTime = answerTime;
}
public int getQid() {
return qid;
}
public void setQid(int qid) {
this.qid = qid;
}
public String getQtitle() {
return qtitle;
}
public void setQtitle(String qtitle) {
this.qtitle = qtitle;
}
public String getAcontent() {
return acontent;
}
public void setAcontent(String acontent) {
this.acontent = acontent;
}
public Timestamp getAnswerTime() {
return answerTime;
}
public void setAnswerTime(Timestamp answerTime) {
this.answerTime = answerTime;
}
}

@ -1,41 +0,0 @@
package com.example.leudaemialikeme.Model;
import java.io.Serializable;
public class MyQuestion implements Serializable {
private static final long serialVersionUID = 1L;
//声明所有变量
private String MyQuestionInfo;
private String MyQuestionRead;
private String MyQuestionTime;
public MyQuestion(String MyQuestionInfo,String MyQuestionRead,String MyQuestionTime){
this. MyQuestionInfo = MyQuestionInfo;
this.MyQuestionRead = MyQuestionRead;
this.MyQuestionTime = MyQuestionTime;
}
public String getMyQuestionInfo() {
return MyQuestionInfo;
}
public void setMyQuestionInfo(String myQuestionInfo) {
MyQuestionInfo = myQuestionInfo;
}
public String getMyQuestionRead() {
return MyQuestionRead;
}
public void setMyQuestionRead(String myQuestionRead) {
MyQuestionRead = myQuestionRead;
}
public String getMyQuestionTime() {
return MyQuestionTime;
}
public void setMyQuestionTime(String myQuestionTime) {
MyQuestionTime = myQuestionTime;
}
}

@ -5,7 +5,6 @@ import java.sql.Timestamp;
public class Question implements Serializable { public class Question implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private int qid; private int qid;
private int uid; private int uid;
private String qtittle; private String qtittle;
@ -16,95 +15,73 @@ public class Question implements Serializable {
private int qbrowseNum; private int qbrowseNum;
private int flag; private int flag;
public Question(){} public Question() {
public Question(String qtittle,String qcontent, int qfollowNum, Timestamp qtime) {
this.qtittle = qtittle;
this.qcontent = qcontent;
this.qtime = qtime;
this.qfollowNum = qfollowNum;
} }
public Question(int qid, int uid, String qtittle, String qcontent, Timestamp timestamp, int qfollowNum, int qanswerNum,
public Question(int qid, int uid, String qtittle, String qcontent, Timestamp qtime, int qfollowNum, int qanswerNum, int qbrowseNum, int flag) { int qbrowseNum, int flag) {
super();
this.qid = qid; this.qid = qid;
this.uid = uid; this.uid = uid;
this.qtittle = qtittle; this.qtittle = qtittle;
this.qcontent = qcontent; this.qcontent = qcontent;
this.qtime = qtime; this.qtime = timestamp;
this.qfollowNum = qfollowNum; this.qfollowNum = qfollowNum;
this.qanswerNum = qanswerNum; this.qanswerNum = qanswerNum;
this.qbrowseNum = qbrowseNum; this.qbrowseNum = qbrowseNum;
this.flag = flag; this.flag = flag;
} }
public int getQid() { public int getQid() {
return qid; return qid;
} }
public int getUid() {
return uid;
}
public String getQtittle() {
return qtittle;
}
public String getQcontent() {
return qcontent;
}
public Timestamp getQtime() {
return qtime;
}
public int getQfollowNum() {
return qfollowNum;
}
public int getQanswerNum() {
return qanswerNum;
}
public int getQbrowseNum() {
return qbrowseNum;
}
public int getFlag() {
return flag;
}
public void setQid(int qid) { public void setQid(int qid) {
this.qid = qid; this.qid = qid;
} }
public int getUid() {
return uid;
}
public void setUid(int uid) { public void setUid(int uid) {
this.uid = uid; this.uid = uid;
} }
public String getQtittle() {
return qtittle;
}
public void setQtittle(String qtittle) { public void setQtittle(String qtittle) {
this.qtittle = qtittle; this.qtittle = qtittle;
} }
public String getQcontent() {
return qcontent;
}
public void setQcontent(String qcontent) { public void setQcontent(String qcontent) {
this.qcontent = qcontent; this.qcontent = qcontent;
} }
public Timestamp getQtime() {
return qtime;
}
public void setQtime(Timestamp qtime) { public void setQtime(Timestamp qtime) {
this.qtime = qtime; this.qtime = qtime;
} }
public int getQfollowNum() {
return qfollowNum;
}
public void setQfollowNum(int qfollowNum) { public void setQfollowNum(int qfollowNum) {
this.qfollowNum = qfollowNum; this.qfollowNum = qfollowNum;
} }
public int getQanswerNum() {
return qanswerNum;
}
public void setQanswerNum(int qanswerNum) { public void setQanswerNum(int qanswerNum) {
this.qanswerNum = qanswerNum; this.qanswerNum = qanswerNum;
} }
public int getQbrowseNum() {
return qbrowseNum;
}
public void setQbrowseNum(int qbrowseNum) { public void setQbrowseNum(int qbrowseNum) {
this.qbrowseNum = qbrowseNum; this.qbrowseNum = qbrowseNum;
} }
public int getFlag() {
return flag;
}
public void setFlag(int flag) { public void setFlag(int flag) {
this.flag = flag; this.flag = flag;
} }

@ -0,0 +1,86 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.leudaemialikeme.Activity.SendInvitationActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:layout_marginBottom="15dp"
android:orientation="horizontal">
<TextView
android:id="@+id/text_answer_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="20dp"
android:gravity="center"
android:text="取消" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="3"
android:gravity="center"
android:textSize="25dp"
android:text="回答问题" />
<TextView
android:id="@+id/text_answer_commit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="20dp"
android:gravity="center"
android:text="提交" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:background="#efefef"
android:padding="10dp">
<TextView
android:id="@+id/text_question_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="20dp"
android:text="问题是什么呢?"
android:textColor="#000"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<EditText
android:id="@+id/text_answer_detail"
android:layout_width="match_parent"
android:layout_height="280dp"
android:ems="10"
android:maxLines="4"
android:gravity="start"
android:layout_margin="10dp"
android:hint="分享你的经验,互帮互助,大家一起好起来呀!" />
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/img_upload_img"
android:layout_margin="10dp"
/>
</LinearLayout>
</LinearLayout>

@ -12,10 +12,11 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal"> android:orientation="horizontal">
<ImageView <ImageView
android:id="@+id/apn_back"
android:layout_width="30dp" android:layout_width="30dp"
android:layout_height="30dp" android:layout_height="30dp"
android:layout_margin="20dp" android:layout_margin="20dp"
android:src="@mipmap/img_go_answer_return" android:src="@mipmap/left_back"
/> />
</LinearLayout> </LinearLayout>
@ -70,45 +71,35 @@
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="wrap_content"
android:background="@drawable/shape_round_corner"
android:orientation="vertical"> android:orientation="vertical">
<LinearLayout <RelativeLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@color/cardview_light_background" android:layout_marginTop="10dp"
android:orientation="horizontal"> android:background="#fff">
<!-- 导航标签,包含一个单选按钮组-->
<TextView <!-- 任意数量不能显示时的缩略符号 -->
android:id="@+id/textView32" <HorizontalScrollView
android:layout_width="wrap_content" android:id="@+id/hvChannel"
android:layout_height="wrap_content" android:layout_width="match_parent"
android:layout_weight="1"
android:textSize="18dp"
android:layout_marginTop="20dp"
android:layout_marginLeft="30dp"
android:layout_marginBottom="20dp"
android:text="回答" />
<TextView
android:id="@+id/textView33"
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_toLeftOf="@+id/ivShowChannel"
android:textSize="18dp" android:scrollbars="none">
android:layout_marginLeft="-30dp"
android:layout_marginTop="20dp"
android:layout_marginBottom="20dp"
android:text="帖子" />
<LinearLayout <RadioGroup
android:id="@+id/rgChannel"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="3" android:orientation="horizontal" />
android:orientation="vertical"> </HorizontalScrollView>
</RelativeLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout> </LinearLayout>
<androidx.viewpager.widget.ViewPager
android:id="@+id/vpNewsList"
android:layout_width="match_parent"
android:layout_height="0dp" android:layout_weight="1"
/>
</LinearLayout> </LinearLayout>

@ -20,7 +20,7 @@
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="189dp" android:layout_height="100dp"
android:background="#FFFFFF" android:background="#FFFFFF"
android:orientation="vertical" android:orientation="vertical"
android:layout_marginBottom="10dp"> android:layout_marginBottom="10dp">
@ -64,31 +64,31 @@
android:id="@+id/detail_theme" android:id="@+id/detail_theme"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="儿童急性B淋巴细胞白血病,除了传统疗法还有哪些前沿治疗方法呢?" android:text="急性白血病经验分享,第一帖"
android:textSize="20dp" /> android:textSize="20dp" />
</LinearLayout> </LinearLayout>
<LinearLayout <!-- <LinearLayout-->
android:id="@+id/detail_to_answer" <!-- android:id="@+id/detail_to_answer"-->
android:layout_width="wrap_content" <!-- android:layout_width="wrap_content"-->
android:layout_height="wrap_content" <!-- android:layout_height="wrap_content"-->
android:orientation="horizontal" <!-- android:orientation="horizontal"-->
android:padding="10dp"> <!-- android:padding="10dp">-->
<TextView <!-- <TextView-->
android:layout_width="match_parent" <!-- android:layout_width="match_parent"-->
android:layout_height="wrap_content" <!-- android:layout_height="wrap_content"-->
android:text="查看全部回答" <!-- android:text="查看全部回答"-->
android:textColor="#66c18c" <!-- android:textColor="#66c18c"-->
android:textSize="15dp" /> <!-- android:textSize="15dp" />-->
<ImageView <!-- <ImageView-->
android:layout_width="24dp" <!-- android:layout_width="24dp"-->
android:layout_height="13dp" <!-- android:layout_height="13dp"-->
android:layout_gravity="center" <!-- android:layout_gravity="center"-->
android:src="@drawable/forwardgreen" /> <!-- android:src="@drawable/forwardgreen" />-->
</LinearLayout> <!-- </LinearLayout>-->
</LinearLayout> </LinearLayout>
@ -126,14 +126,14 @@
android:layout_marginLeft="5dp"> android:layout_marginLeft="5dp">
<TextView <TextView
android:id="@+id/textView36" android:id="@+id/author"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="LeudaemiaLikeMe" android:text="病因很重要"
android:textSize="18dp"/> android:textSize="18dp"/>
<TextView <TextView
android:id="@+id/textView37" android:id="@+id/author_intro"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="管住嘴,迈开腿,多喝水" /> android:text="管住嘴,迈开腿,多喝水" />
@ -141,27 +141,21 @@
</LinearLayout> </LinearLayout>
<TextView <TextView
android:id="@+id/textView38" android:id="@+id/bContent"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text=" 急性淋巴细胞白血病ALL是儿童最常见的恶性肿瘤其中约85%为急性B淋巴细胞白血病B-ALL。随着联合化疗方案和支持治疗的进展急性B淋巴细胞白血病患儿的生存率得到了显著提升但复发难治性儿童急性淋巴细胞白血病的治疗仍是一大挑战。 android:text="缘起: 一直以来都有很多人劝我希望我可以把自己的经历写下来,我的医生,我的同学,
近年来基因组分析技术的应用更加完善了儿童急性淋巴细胞白血病的分类为更精确的分层及治疗提供了可能部分靶向药物也已用于临床为儿童急性淋巴细胞白血病提供新的治疗手段。此外利用基因工程技术表达靶向嵌合抗原受体CAR-T细胞的过继免疫治疗在复发难治儿童急性B淋巴细胞白血病中同样取得了突破性进展。 我的朋友,他们觉得我的经历很有意义,虽然我自己也认同这一点,一直很难以动笔,原因有二,其一觉得
" 自己学理工的,对自己的文笔没什么自信。其二过往的经历实在是痛苦,写下来的过程无异于把好不容易重
合的伤疤撕开一次,自己的内心实在是有点胆怯。\n \n一谈谈我对白血病的看法\n
初次知道白血病是通过日本电影《血疑》,我相信和我年纪相当的人很多也都是通过这部电影知道这个疾病,当然我从未想过我
会与此牵扯上关系甚至在自己22岁以后的生命中处处时时需要考虑它对我的影响。我初次得病是1998年在那个年代白血病
的确依旧是一个很恐怖的病,我当初的症状就是四肢布满红色出血点,低烧吵死不退,牙龈出血,记得每次早上起床,嘴里总是
有凝结的血块,那是虽然不懂这是怎么回事,但是总是担心的要命,于是便经常刷牙,希望仅仅是上火所致,也不敢去看医生,
于是就自己买消炎药吃,希望可以平安过去。"
android:layout_gravity="center" android:layout_gravity="center"
android:paddingTop="15dp"
android:layout_margin="10dp"/> android:layout_margin="10dp"/>
<TextView
android:id="@+id/textView39"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="儿童急性淋巴细胞白血病的治疗方案主要分为三个阶段。
第一阶段:诱导缓解阶段
目的在于杀伤血液和骨髓中的白血病细胞短期内达到完全缓解CR包括临床症状消失、血象恢复正常、骨髓象恢复正常和原始细胞5%。据研究统计超过95%的患者在化疗后的4~6周达到CR。诱导期治疗主要方案有VDLP方案长春新碱、柔红霉素、门冬酰胺酶和泼尼松 或 VDLD方案长春新碱、柔红霉素、门冬酰胺酶和地塞米松。其中门冬酰胺酶是治疗儿童急性淋巴细胞白血病的关键药物之一通常需要较高剂量其剂量与治疗疗效相关相对于泼尼松地塞米松则更有助于改善中枢神经系统CNS的症状。
第二阶段:巩固治疗/强化治疗。
旨在杀伤体内残留的或可能引起复发的白血病细胞。有研究显示在诱导期治疗后和巩固治疗后均达到CR的儿童急性B淋巴细胞白血病患儿5年的无病生存率EFS可达到92.3%。早期强化治疗可选择环磷酰胺+阿糖胞苷+6-MPCAM方案或CAML方案+培门冬酶)。对于低、中危急性淋巴细胞白血病患儿,缓解后巩固治疗应用大剂量甲氨蝶呤+四氢叶酸钙+6-MP的治疗方案高危患儿则需应用HR-1、HR-2、HR-3方案。
"
android:layout_gravity="center"
android:layout_margin="10dp"/>
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
@ -249,20 +243,18 @@
android:textSize="19dp"/> android:textSize="19dp"/>
<TextView <TextView
android:id="@+id/textView46" android:id="@+id/comment_num"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="(0)" android:text="(0)"
android:textSize="17dp" /> android:textSize="17dp" />
</LinearLayout> </LinearLayout>
<TextView <androidx.viewpager.widget.ViewPager
android:id="@+id/textView47" android:id="@+id/vpNewsList_detail"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="150dp" android:layout_height="wrap_content"
android:text="暂无评论" android:layout_weight="1" />
android:textSize="17dp"
android:gravity="center"/>
</LinearLayout> </LinearLayout>
@ -288,15 +280,24 @@
app:srcCompat="@drawable/write" /> app:srcCompat="@drawable/write" />
<EditText <EditText
android:id="@+id/editTextTextPersonName" android:id="@+id/comment_edit"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:ems="10" android:ems="10"
android:inputType="textPersonName" android:inputType="textPersonName"
android:text="写评论" android:hint="写评论"
android:background="#F1EEEE" android:background="#F1EEEE"
android:layout_marginTop="10dp"/> android:layout_marginTop="10dp"/>
<TextView
android:id="@+id/comment_commit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="20dp"
android:gravity="center"
android:layout_marginTop="10dp"
android:text="发布" />
</LinearLayout> </LinearLayout>

@ -10,30 +10,39 @@
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:orientation="horizontal"> android:orientation="horizontal">
<ImageView <ImageView
android:id="@+id/my_question_back"
android:layout_width="30dp" android:layout_width="30dp"
android:layout_height="30dp" android:layout_height="30dp"
android:layout_margin="15dp" android:layout_margin="12dp"
android:src="@mipmap/img_go_answer_return" android:src="@mipmap/left_back"
/> />
<TextView <TextView
android:id="@+id/text_concern_question" android:id="@+id/text_concern_question"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="4" android:layout_marginLeft="100dp"
android:textSize="18dp" android:textSize="18dp"
android:gravity="center"
android:layout_gravity="center" android:layout_gravity="center"
android:text="我的提问" /> android:text="我的提问" />
</LinearLayout> </LinearLayout>
<androidx.recyclerview.widget.RecyclerView <LinearLayout
android:id="@+id/myQuestionList"
android:background="@color/light_grey"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" /> android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/light_grey">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/my_question_list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:layout_gravity="center"
/>
</LinearLayout>
</LinearLayout> </LinearLayout>

@ -0,0 +1,239 @@
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/background"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="100dp"
android:background="#FFFFFF"
android:orientation="vertical"
android:layout_marginBottom="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:orientation="horizontal">
<ImageView
android:id="@+id/question_back"
android:layout_width="47dp"
android:layout_height="34dp"
android:layout_gravity="center"
android:src="@drawable/back" />
<TextView
android:layout_width="306dp"
android:layout_height="match_parent"
android:gravity="center"
android:text="问题详情"
android:textSize="19dp"
android:textStyle="bold" />
<ImageView
android:id="@+id/detail_to_search"
android:layout_width="66dp"
android:layout_height="match_parent"
app:srcCompat="@android:drawable/ic_menu_search" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp">
<TextView
android:id="@+id/text_question_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#000"
android:text="问题标题"
android:textSize="20dp" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_marginBottom="10dp"
android:background="#FFFFFF">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<ImageView
android:id="@+id/imageView13"
android:layout_width="104dp"
android:layout_height="40dp"
android:layout_weight="1"
app:srcCompat="@drawable/person" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical"
android:layout_marginLeft="5dp">
<TextView
android:id="@+id/text_author"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="用户名"
android:textSize="18dp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="管住嘴,迈开腿,多喝水" />
</LinearLayout>
</LinearLayout>
<TextView
android:id="@+id/text_question_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="内容"
android:layout_gravity="center"
android:paddingTop="15dp"
android:layout_margin="10dp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:layout_margin="20dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
<ImageView
android:id="@+id/img_invite_to_answer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:srcCompat="@mipmap/invite_to_answer" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="邀请回答" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_weight="1">
<ImageView
android:id="@+id/img_go_write_answer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:srcCompat="@mipmap/go_write_answer" />
<TextView
android:id="@+id/textView52"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="去回答" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_weight="1">
<ImageView
android:id="@+id/img_follow_question"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:srcCompat="@mipmap/follow_question" />
<TextView
android:id="@+id/text_follow_question"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="关注问题" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="#ffffff">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:background="#FFFFFF"
android:padding="20dp">
<TextView
android:id="@+id/textView45"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="回答"
android:textSize="19dp"/>
<TextView
android:id="@+id/text_answer_num"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="(0)"
android:textSize="17dp" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="#FFFFFF">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView_answer"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</ScrollView>

@ -0,0 +1,60 @@
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardBackgroundColor="#FFFFFF">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="12dp"
android:orientation="horizontal">
<ImageView
android:id="@+id/text_answer_user_image"
android:layout_width="95dp"
android:layout_height="30dp"
android:layout_weight="1"
android:src="@drawable/person" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:id="@+id/text_answer_username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="用户名"
android:textSize="15dp" />
<TextView
android:id="@+id/text_answer_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:text="太棒啦"
android:textSize="14dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/text_answer_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="210dp"
android:layout_marginTop="15dp"
android:text="2021-11-06 09:19:54"
android:textSize="12dp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>

@ -0,0 +1,64 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardBackgroundColor="#FFFFFF">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:layout_marginLeft="10dp"
android:layout_marginBottom="10dp"
android:orientation="horizontal">
<ImageView
android:id="@+id/comment_user_image"
android:layout_width="104dp"
android:layout_height="30dp"
android:layout_weight="1"
android:src="@drawable/person" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:id="@+id/comment_user_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="亚子读书"
android:textSize="15dp" />
<TextView
android:id="@+id/comment_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:text="太棒啦"
android:textSize="14dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/textView47"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="210dp"
android:layout_marginTop="15dp"
android:text="2021-11-06 09:19:54"
android:textSize="12dp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Fragment.APNChannelFragment">
<!-- TODO: Update blank fragment layout -->
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/hello_blank_fragment" />
</FrameLayout>

@ -11,7 +11,6 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:gravity="center" android:gravity="center"
android:textSize="30sp"></TextView> android:textSize="30sp" />
<!-- android:text="@string/hello_blank_fragment"--> />
</FrameLayout> </FrameLayout>

@ -9,7 +9,6 @@
<!-- TODO: Update blank fragment layout --> <!-- TODO: Update blank fragment layout -->
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
@ -40,14 +39,14 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="30dp" android:layout_height="30dp"
android:layout_margin="10dp" android:layout_margin="10dp"
android:text="187****3609" android:text="XXX"
android:textSize="18dp" /> android:textSize="18dp" />
<TextView <TextView
android:id="@+id/signature" android:id="@+id/slogan"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="管住嘴,多饮水,常保暖" android:text="管住嘴,迈开腿,多喝水"
android:textSize="16dp" /> android:textSize="16dp" />
</LinearLayout> </LinearLayout>

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="334dp"
android:layout_height="wrap_content"
android:background="@drawable/background"
android:elevation="8dp"
android:padding="15dp"
android:layout_margin="12dp">
<TextView
android:id="@+id/text_answer_qid"
android:layout_width="0dp"
android:layout_height="0dp"
android:text="" />
<TextView
android:id="@+id/text_my_answer_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="标题"
android:textSize="15dp"
android:textStyle="bold"
android:maxLines="2"
android:ellipsize="end"/>
<TextView
android:id="@+id/text_my_answer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:textSize="11dp"
android:text="内容"
android:maxLines="2"
android:ellipsize="end"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:orientation="horizontal"
android:layout_weight="1"
android:gravity="bottom"
android:layout_marginTop="5dp"
>
<TextView
android:id="@+id/text_answer_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="xxxx-xx-xx xx:xx:xx"
android:textSize="11dp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="right"
android:text="问题详情 " />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/img_go_more" />
</LinearLayout>
</LinearLayout>

@ -0,0 +1,73 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="334dp"
android:layout_height="wrap_content"
android:background="@drawable/background"
android:elevation="8dp"
android:padding="15dp"
android:layout_margin="12dp">
<TextView
android:id="@+id/text_my_blog_id"
android:layout_width="0dp"
android:layout_height="0dp"
android:text="" />
<TextView
android:id="@+id/text_my_blog_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="标题"
android:textSize="15dp"
android:textStyle="bold"
android:maxLines="2"
android:ellipsize="end"/>
<TextView
android:id="@+id/text_my_blog_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="内容"
android:maxLines="2"
android:ellipsize="end"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:orientation="horizontal"
android:layout_weight="1"
android:gravity="bottom"
android:layout_marginTop="5dp">
<TextView
android:id="@+id/text_my_blog_browse"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="--"
android:textSize="12dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="浏览 "
android:textSize="11dp"/>
<TextView
android:id="@+id/text_my_blog_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="xxxx-xx-xx xx:xx:xx"
android:textSize="11dp"/>
<TextView
android:id="@+id/text_my_blog_flag"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="right"
android:text="未审核"
android:textColor="#f30"/>
</LinearLayout>
</LinearLayout>

@ -1,50 +1,67 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="@color/white" android:layout_height="wrap_content"
android:layout_width="334dp"
android:background="@drawable/background"
android:elevation="10dp"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:layout_width="match_parent" android:orientation="vertical"
android:layout_height="wrap_content"> android:padding="15dp">
<TextView <TextView
android:id="@+id/myQuestionInfo" android:id="@+id/text_my_question_id"
android:layout_width="0dp"
android:layout_height="0dp"
android:text="" />
<TextView
android:id="@+id/text_my_question_title"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textSize="20dp" android:text="问题标题"
android:layout_margin="15dp" android:textSize="15dp"
/> android:textStyle="bold"
android:maxLines="2"
android:ellipsize="end"/>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:layout_weight="1"
android:gravity="bottom"
android:layout_marginTop="5dp">
<TextView
android:id="@+id/text_my_question_browse"
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_margin="10dp" android:text="--"
android:orientation="horizontal"> android:textSize="12dp"/>
<TextView <TextView
android:id="@+id/myQuestionRead"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:text="浏览 "
android:textSize="16dp" android:textSize="11dp"/>
android:layout_marginLeft="5dp"
/>
<TextView <TextView
android:id="@+id/myQuestionTime" android:id="@+id/text_my_question_time"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="2" android:text="xxxx-xx-xx xx:xx:xx"
android:textSize="16dp" android:textSize="11dp"/>
/>
<LinearLayout <TextView
android:id="@+id/text_my_question_flag"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="1"
android:id="@+id/question" android:gravity="right"
android:orientation="horizontal"> android:textColor="#f30"
android:text="未审核" />
</LinearLayout>
</LinearLayout>
</LinearLayout> </LinearLayout>
</LinearLayout>

@ -33,7 +33,8 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:singleLine="true" android:singleLine="true"
android:text="" /> android:text=""
android:ellipsize="end"/>
<TextView <TextView
android:id="@+id/chat_friend_id" android:id="@+id/chat_friend_id"
android:layout_width="0dp" android:layout_width="0dp"

@ -65,13 +65,11 @@
android:layout_weight="1" android:layout_weight="1"
android:textSize="13dp" android:textSize="13dp"
android:gravity="right" android:gravity="right"
android:layout_marginRight="10dp" android:layout_marginRight="10dp"
android:text="我要回答" /> android:text="我要回答" />
<ImageView <ImageView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:src="@mipmap/img_go_more" android:src="@mipmap/img_go_more"
android:layout_gravity="center" android:layout_gravity="center"
/> />

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 836 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Loading…
Cancel
Save