发帖+提问

master
hjw 3 years ago
parent 68e331caac
commit 20d12ac1ce

@ -8,6 +8,7 @@
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:name=".Utils.Data"
android:theme="@style/Theme.LeudaemiaLikeMe">
<activity android:name=".Activity.AttentionActivity"></activity>
<activity android:name=".Activity.HistoryActivity" />

@ -90,7 +90,7 @@ public class MainActivity extends AppCompatActivity {
public void run() {
QuestionDao userDao=new QuestionDao();
try {
userDao.qInsert();
userDao.qSelect();
} catch (Exception e) {
e.printStackTrace();
}

@ -1,16 +1,163 @@
package com.example.leudaemialikeme.Activity;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.example.leudaemialikeme.Dao.InvitationDao;
import com.example.leudaemialikeme.R;
import com.example.leudaemialikeme.Utils.Data;
import java.text.SimpleDateFormat;
import java.util.Locale;
public class SendInvitationActivity extends AppCompatActivity {
EditText titleView;
EditText detailView;
TextView cancelView;
TextView commitView;
TextView titleCountView;
String title;
String detail;
String type;
InvitationDao invitation=new InvitationDao();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_send_invitation);
initView();
setWatcher();
setClick();
}
private void setClick() {
cancelView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SendInvitationActivity.this.finish();
}
});
commitView.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
title=titleView.getText().toString();
detail=detailView.getText().toString();
if(title.length()<10){
Log.e("输入的title:", String.valueOf(title.length()));
Toast.makeText(SendInvitationActivity.this,
"您输入的字数尚不足,请完善您的帖子标题",Toast.LENGTH_SHORT).show();}
long timeCurrent = System.currentTimeMillis();
SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
String time = sdf.format(timeCurrent);
Log.e("输入的time:", time);
new Thread(new Runnable(){
@Override
public void run() {
try {
Data app = (Data)getApplication();
Log.e("type",type);
invitation.iInsert(app.uid,type,title,detail,time,0,0);
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(SendInvitationActivity.this,
"提交成功",Toast.LENGTH_SHORT).show();
}
});
} catch (Exception exception) {
exception.printStackTrace();
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(SendInvitationActivity.this,
"帖子提交失败,请检查您的网络状况",Toast.LENGTH_SHORT).show();
}
});
}
}
}).start();
}
});
}
@SuppressLint("NonConstantResourceId")
public void onRadioButtonClicked(View view) {
RadioButton button = (RadioButton) view;
boolean isChecked = button.isChecked();
switch (view.getId()) {
case R.id.SendInvitation_radio_bad:
case R.id.SendInvitation_radio_recover:
case R.id.SendInvitation_radio_experience:
case R.id.SendInvitation_radio_knowledge:
if (isChecked) {
type=button.getText().toString();
}
break;
default:
type="经验帖";
break;
}
}
public void initView(){
titleView=(EditText)findViewById(R.id.invitation_title);
detailView=(EditText)findViewById(R.id.invitation_detail);
cancelView=(TextView)findViewById(R.id.invitation_cancel);
commitView=(TextView)findViewById(R.id.invitation_commit);
titleCountView=(TextView)findViewById(R.id.invitation_title_count);
}
public void setWatcher(){
titleView.addTextChangedListener(new TextWatcher() {
private CharSequence temp;
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
temp=s;
}
@Override
public void afterTextChanged(Editable s) {
int editStart = titleView.getSelectionStart();
int editEnd = titleView.getSelectionEnd();
titleCountView.setText(temp.length()+"/40");
if(temp.length()>40){
Toast.makeText(SendInvitationActivity.this,
"您输入的字数已经超过限制",Toast.LENGTH_SHORT).show();
s.delete(editStart-1,editEnd);
int tempSelection=editStart;
titleView.setText(s);
try{
titleView.setSelection(tempSelection);
} catch (Exception exception) {
titleView.setText(s);
}
}
}
});
}
}

@ -1,25 +1,179 @@
package com.example.leudaemialikeme.Activity;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.example.leudaemialikeme.Dao.QuestionDao;
import com.example.leudaemialikeme.R;
import com.example.leudaemialikeme.Utils.Data;
public class SendQuestionActivity extends AppCompatActivity implements View.OnClickListener{
import java.text.SimpleDateFormat;
import java.util.Locale;
public class SendQuestionActivity extends AppCompatActivity{
EditText titleText;
EditText detailText;
TextView cancelView;
TextView commitView;
TextView textCountView;
TextView titleCountView;
String title;
String detail;
QuestionDao question=new QuestionDao();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_send_question);
initViews();
setWatcher();
setClick();
}
private void setClick() {
cancelView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SendQuestionActivity.this.finish();
}
});
commitView.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
title=titleText.getText().toString();
detail=detailText.getText().toString();
if(titleText.getText().toString().length()<10){
Log.e("输入的title:", String.valueOf(title.length()));
Toast.makeText(SendQuestionActivity.this,
"您输入的字数尚不足,请完善您的问题以便获得更好的回答",Toast.LENGTH_SHORT).show();}
long timeCurrent = System.currentTimeMillis();
SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
String time = sdf.format(timeCurrent);
Log.e("输入的time:", time);
new Thread(new Runnable(){
@Override
public void run() {
try {
Data app = (Data)getApplication();
question.qInsert(app.uid,title,detail,time,0,0,0);
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(SendQuestionActivity.this,
"提交成功",Toast.LENGTH_SHORT).show();
}
});
} catch (Exception exception) {
exception.printStackTrace();
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(SendQuestionActivity.this,
"问题提交失败,请检查您的网络状况",Toast.LENGTH_SHORT).show();
}
});
}
}
}).start();
}
});
}
@Override
public void onClick(View v) {
public void initViews(){
titleText=(EditText)findViewById(R.id.editText_question);
detailText=(EditText)findViewById(R.id.editText_question_detail);
cancelView=(TextView)findViewById(R.id.cancel);
commitView=(TextView)findViewById(R.id.commit);
textCountView=(TextView)findViewById(R.id.text_count);
titleCountView=(TextView)findViewById(R.id.title_count);
// title=titleText.getText().toString();
// detail=detailText.getText().toString();
}
public void setWatcher(){
titleText.addTextChangedListener(new TextWatcher() {
private CharSequence temp;
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
temp=s;
}
@Override
public void afterTextChanged(Editable s) {
int editStart = titleText.getSelectionStart();
int editEnd = titleText.getSelectionEnd();
titleCountView.setText(temp.length()+"/40");
if(temp.length()>40){
Toast.makeText(SendQuestionActivity.this,
"您输入的字数已经超过限制",Toast.LENGTH_SHORT).show();
s.delete(editStart-1,editEnd);
int tempSelection=editStart;
detailText.setText(s);
try{
detailText.setSelection(tempSelection);
} catch (Exception exception) {
detailText.setText(s);
}
}
}
});
detailText.addTextChangedListener(new TextWatcher() {
private CharSequence temp;
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
temp=s;
}
@SuppressLint("SetTextI18n")
@Override
public void afterTextChanged(Editable s) {
int editStart = detailText.getSelectionStart();
int editEnd = detailText.getSelectionEnd();
textCountView.setText(temp.length()+"/200");
if(temp.length()>200){
Toast.makeText(SendQuestionActivity.this,
"您输入的字数已经超过限制",Toast.LENGTH_SHORT).show();
s.delete(editStart-1,editEnd);
int tempSelection=editStart;
detailText.setText(s);
try{
detailText.setSelection(tempSelection);
} catch (Exception exception) {
detailText.setText(s);
}
}
}
});
}
}

@ -0,0 +1,28 @@
package com.example.leudaemialikeme.Dao;
import com.example.leudaemialikeme.Utils.DBUtils;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
public class InvitationDao {
public boolean iInsert(int uid,String type,String title,String content,String time,int likeNum,int collectNum)throws Exception{
Connection conn=null;
Statement state=null;
ResultSet rs=null;
try{
conn= DBUtils.getConnect();
state=conn.createStatement();
String sql="insert blog(uid,utype,utitle,ucontent,utime,ulikeNum,ucollectNum) values('"+
uid+"','"+type+"','"+title+"','"+content+"','"+time+"','"+likeNum+"','"+collectNum+"')";
state.execute(sql);
}catch (Exception e){
e.printStackTrace();
}finally {
DBUtils.release(conn,state,rs);
}
return true;
}
}

@ -10,7 +10,7 @@ import java.sql.Statement;
public class QuestionDao {
public boolean qInsert()throws Exception{
public boolean qSelect()throws Exception{
Connection conn=null;
Statement state=null;
ResultSet rs=null;
@ -29,7 +29,26 @@ public class QuestionDao {
}
return true;
}
public boolean qInsert(int uid,String title,
String content,String time,int follow,int answer,int browse
)throws Exception{
Connection conn=null;
Statement state=null;
ResultSet rs=null;
try{
conn= DBUtils.getConnect();
state=conn.createStatement();
String sql="insert question(uid,qtitle,qcontent,qtime,qfollowNum,qanswerNum,qbrowseNum) values('"+
uid+"','"+title+"','"+content+"','"+time+"','"+follow+"','"+answer+"','"+browse+"')";
state.execute(sql);
}catch (Exception e){
e.printStackTrace();
}finally {
DBUtils.release(conn,state,rs);
}
return true;
}
}
//int uid,String title,
// String content,String time,int follow,int answer,int browse

@ -10,7 +10,7 @@ import java.sql.Statement;
public class DBUtils {
private final static String driver = "com.mysql.jdbc.Driver";
private final static String url = "jdbc:mysql://192.168.80.1:3306/leukemia?serverTimezone=UTC";
private final static String url = "jdbc:mysql://192.168.80.1:3306/leukemia?serverTimezone=UTC&useSSL=false&characterEncoding=utf8";
private final static String username = "root";
private final static String password = "123456";

@ -0,0 +1,20 @@
package com.example.leudaemialikeme.Utils;
public class Data extends android.app.Application {
public int uid=1;
public String id="430481200101220131";
public String name="abc";
public int getUid(){
return uid;
}
public void setUid(int uid){
this.uid= uid;
}
public String getId(){
return this.id;
}
public void setId(String id){
this.id= id;
}
}

@ -7,7 +7,7 @@ android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.leudaemialikeme.Activity.SendInvitationActivity" >
<LinearLayout
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
@ -15,7 +15,7 @@ android:orientation="vertical"
android:orientation="horizontal">
<TextView
android:id="@+id/cancel0"
android:id="@+id/invitation_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
@ -24,7 +24,7 @@ android:orientation="vertical"
android:text="取消" />
<TextView
android:id="@+id/text_release"
android:id="@+id/invitation_release"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="3"
@ -33,7 +33,7 @@ android:orientation="vertical"
android:text="发布" />
<TextView
android:id="@+id/commit0"
android:id="@+id/invitation_commit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
@ -49,17 +49,26 @@ android:orientation="vertical"
android:orientation="vertical">
<EditText
android:id="@+id/editText_release"
android:id="@+id/invitation_title"
android:layout_width="match_parent"
android:layout_height="42dp"
android:ems="10"
android:maxLength="40"
android:inputType="textPersonName"
android:layout_margin="10dp"
android:hint="请输入你的标题" />
android:hint="请输入你的标题(10-40字)" />
<TextView
android:id="@+id/invitation_title_count"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:gravity="start"
android:text="0/40"
android:textSize="15dp" />
<EditText
android:id="@+id/editText_question_detail"
android:id="@+id/invitation_detail"
android:layout_width="match_parent"
android:layout_height="280dp"
android:ems="10"
@ -74,6 +83,59 @@ android:orientation="vertical"
android:src="@mipmap/img_upload_img"
android:layout_margin="10dp"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginTop="5dp"
android:gravity="start"
android:text="添加标签:"
android:textSize="15dp" />
<RadioGroup
android:id="@+id/invitation_type"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton
android:id="@+id/SendInvitation_radio_bad"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onRadioButtonClicked"
android:text="扫雷贴" />
<RadioButton
android:id="@+id/SendInvitation_radio_recover"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onRadioButtonClicked"
android:text="康复帖" />
<RadioButton
android:id="@+id/SendInvitation_radio_experience"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onRadioButtonClicked"
android:text="经验贴" />
<RadioButton
android:id="@+id/SendInvitation_radio_knowledge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onRadioButtonClicked"
android:text="科普贴" />
</RadioGroup>
</LinearLayout>
</LinearLayout>
</LinearLayout>

@ -54,19 +54,30 @@
android:layout_height="42dp"
android:ems="10"
android:maxLength="40"
android:inputType="textPersonName"
android:inputType="textMultiLine"
android:lines="4"
android:layout_margin="10dp"
android:hint="请输入你的问题(10-40个字)" />
android:hint="请输入你的问题(10-40字)" />
<TextView
android:id="@+id/title_count"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:gravity="start"
android:text="0/40"
android:textSize="15dp" />
<EditText
android:id="@+id/editText_question_detail"
android:layout_width="match_parent"
android:layout_height="280dp"
android:ems="10"
android:inputType="textPersonName"
android:maxLines="4"
android:gravity="start"
android:layout_margin="10dp"
android:inputType="textMultiLine"
android:lines="8"
android:hint="(选填)填入补充说明" />
<TextView

Loading…
Cancel
Save