News.java
package com.example.talk;
//实例化数据库对象
public class News {
private String newsid;//新闻编号
private String newsname;//新闻标题
private String departmentName;//发布的部门
private String newscontent;//新闻内容
private String newsdate;//新闻时间
public News(String newsid, String newsname,
String departmentName, String newscontent,String newsdate) {
super();
this.newsid=newsid;
this.newsname=newsname;
this.departmentName=departmentName;
this.newscontent=newscontent;
this.newsdate=newsdate;
}
public String getNewsid() {
return newsid;
}
public void setNewsid(String newsid) {
this.newsid = newsid;
}
public String getNewsname() {
return newsname;
}
public void setNewsname(String newsname) {
this.newsname = newsname;
}
public String getDepartmentName() {
return departmentName;
}
public void setDepartmentName(String departmentName) {
this.departmentName = departmentName;
}
public String getNewscontent() {
return newscontent;
}
public void setNewscontent(String newscontent) {
this.newscontent = newscontent;
}
public String getNewsdate() {
return newsdate;
}
public void setNewsdate(String newsdate) {
this.newsdate = newsdate;
}
@Override
public String toString() {
return "id=" +newsid + ", 新闻标题=" + newsname + ",发布的部门=" + departmentName
+ ",新闻内容=" + newscontent+",新闻时间="+newsdate;
}
}
NewsDAO.java
package com.example.talk;
//管理员创建的数据库
import com.example.management.SqliteHelper;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
public class NewsDAO {
private SqliteHelper helper;
//写入 ,不然会是出错,是空指针
public NewsDAO(Context context){
helper=new SqliteHelper(context);
}
/**
* 添加部门
*/
public void add(News news){
SQLiteDatabase db=helper.getWritableDatabase();
String sql="Insert into newsreport(newsid,departmentName,newsname,newscontent,newsdate) values(?,?,?,?,?)";
db.execSQL(sql, new Object[]{news.getNewsid(),news.getDepartmentName(),news.getNewsname(),news.getNewscontent(),news.getNewsdate()});
db.close();
}
/**
* 删除指定编号的部门
*/
public void delete(String...id){
if(id.length>0){
StringBuffer sb=new StringBuffer();
for(int i=0;i<id.length;i++){
sb.append("?").append(",");
}
sb.deleteCharAt(sb.length()-1);
SQLiteDatabase database=helper.getWritableDatabase();
String sql="delete from newsreport where newsid in ("+sb+")";
database.execSQL(sql, id);
}
}
/**
* 删除表里的全部数据
*/
public void delelteall(){
SQLiteDatabase database=helper.getWritableDatabase();
String sql = "delete from newsreport";
database.execSQL(sql);
}
/**
* 根据编号修改数据
*/
public void update(News news){
SQLiteDatabase db=helper.getWritableDatabase();
String sql="update newsreport set newsname=?,departmentName=?,newscontent=?,newsdate=? where newsid=?";
db.execSQL(sql, new Object[]{news.getNewsname(),news.getDepartmentName(),news.getNewscontent(),news.getNewsid(),news.getNewsdate()});
}
/**
* 查找指定部门 编号的信息
*/
public News find(String id){
SQLiteDatabase db=helper.getWritableDatabase();
String sql="select * from newsreport where newsid=?";
Cursor cursor=db.rawQuery(sql, new String[]{String.valueOf(id)});
if(cursor.moveToNext()){
return new News(
cursor.getString(cursor.getColumnIndex("newsid")),
cursor.getString(cursor.getColumnIndex("departmentName")),
cursor.getString(cursor.getColumnIndex("newsname")),
cursor.getString(cursor.getColumnIndex("newsdate")),
cursor.getString(cursor.getColumnIndex("newscontent")));
}
return null;
}
/**
* 显示部门信息
*/
public Cursor select() {
SQLiteDatabase db = helper.getReadableDatabase();
Cursor cursor = db.query("newsreport",
null, null, null, null,null,"_id asc");
return cursor;
}
}
NewsreportActivity.java
package com.example.talk;
import com.example.kakalauncher.R;
import com.example.manage.ManagermainActivity;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
public class NewsreportActivity extends Activity implements OnClickListener{
final int DIALOG_DELETE=0;
final int DIALOG_UPDATE=1;
private static final String TAG = "Add";
private Button add,find,update,delect;
private EditText newsid,newsname,newscontent,newsdate;
private TextView title;
private ListView listview;
private Spinner newsreportName;
private TextView datashow;
private AutoCompleteTextView actv;
//获取keys值用于自动完成文本框
private String[] keys={"20151101","20151102","20151103"};
@Override
public void onCreate(Bundle savedInstanceState) {
//隐藏标题栏,运营商图标和电量等
requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_newsreport);
//设置activity的背景图片
getWindow().setBackgroundDrawableResource(R.drawable.bg);
//获取组件
add=(Button)findViewById(R.id.add);
find=(Button)findViewById(R.id.find);
update=(Button)findViewById(R.id.select);
delect=(Button)findViewById(R.id.selectAll);
newsid=(EditText)findViewById(R.id.actv);
newsreportName=(Spinner)findViewById(R.id.newsreportName);
newsname=(EditText)findViewById(R.id.ednewsname);
newscontent=(EditText)findViewById(R.id.ednewscontent);
newsdate=(EditText)findViewById(R.id.ednewsdate);
title=(TextView)findViewById(R.id.Information);
listview = (ListView)findViewById(R.id.list);
//获取组件
actv=(AutoCompleteTextView) findViewById(R.id.actv);
//自动完成文本框的适配器
//ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,keys);
datashow = (TextView)findViewById(R.id.datashow);
//定义arrayadapter适配器
ArrayAdapter<CharSequence> adapter=ArrayAdapter.createFromResource(this,
R.array.newsreportName, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
newsreportName.setAdapter(adapter);
newsreportName.setPrompt("请选择发布者:");
//创建监听器
add.setOnClickListener(this);
find.setOnClickListener(this);
//为更新新闻创建事件监听
update.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(newsid.getText().toString().equals("")){
Toast.makeText(NewsreportActivity.this, "新闻编号不能为空!", Toast.LENGTH_LONG).show();
}
else{
News depertment = newsDAO.find(newsid.getText().toString());
if(depertment==null){
Toast.makeText(NewsreportActivity.this, "此新闻不存在!", Toast.LENGTH_LONG).show();
empty();
}
else{
//弹出dialog
showDialog(DIALOG_UPDATE);
}
}
}
});
//为删除部门创建事件监听
delect.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//判断id值是否存在
if(!newsid.getText().toString().equals("")){
News depertment = newsDAO.find(newsid.getText().toString());
if(depertment==null){
Toast.makeText(NewsreportActivity.this, "此新闻不存在!", Toast.LENGTH_LONG).show();
empty();
}
else{
showDialog(DIALOG_DELETE);
}
}
else {
Toast.makeText(NewsreportActivity.this, "请输入要删除的新闻编号", Toast.LENGTH_LONG).show();
}
}
});
}
//定义一个empty方法,清空数据
public void empty(){
newsid.setText("");
newsreportName.setSelection(0);
newsname.setText("");
newscontent.setText("");
newsdate.setText("");
}
//为返回创建intent,事件监听
public void goback(View view){
Intent intent=new Intent();
intent.setClass(NewsreportActivity.this, ManagermainActivity.class);
startActivity(intent);
}
//实例化数据库
NewsDAO newsDAO=new NewsDAO(this);
@Override
protected Dialog onCreateDialog(int id){
Dialog dialog=null;
Builder builder=new AlertDialog.Builder(this);
switch(id) {
case DIALOG_DELETE: //删除指定编号的新闻
builder.setTitle("提示");
builder.setMessage("确认删除这条新闻么?");
builder.setPositiveButton(R.string.btnOK, new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog,int which) {
// TODO Auto-generated method stub
try{
newsDAO.delete(newsid.getText().toString());
Toast.makeText(NewsreportActivity.this, "编号为"+newsid.getText().toString()+"的新闻删除成功!"
, Toast.LENGTH_LONG).show();
empty();
}
catch (Exception e) {
Log.i("Delete", e.getMessage());
}
}
});
builder.setNegativeButton(R.string.btnCancel, new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog,int which) {
// TODO Auto-generated method stub
}
});
dialog=builder.create();
break;
//修改的dialog
case DIALOG_UPDATE:
builder.setTitle("提示");
builder.setMessage("确认修改这条新闻么?");
builder.setPositiveButton(R.string.btnOK, new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog,int which) {
// TODO Auto-generated method stub
if(newsid.getText().toString().equals("")){
Toast.makeText(NewsreportActivity.this, "新闻编号不能为空!", Toast.LENGTH_LONG).show();
}else{
News news=newsDAO.find(newsid.getText().toString());
if(news==null){
Toast.makeText(NewsreportActivity.this, "新闻不存在!", Toast.LENGTH_LONG).show();
}else{
//实现页面的跳转
Intent intent=new Intent();
intent.setClass(NewsreportActivity.this, UpdatenewsActivity.class );
//使用bundle进行数据封装
Bundle bundle=new Bundle();
bundle.putString("newsid", news.getNewsid());
bundle.putString("newsname", news.getNewsname());
bundle.putString("newscontent", news.getNewscontent());
bundle.putString("newsdate", news.getNewsdate());
bundle.putString("newsreportName", news.getDepartmentName());
//将intent封装到bundle中
intent.putExtras(bundle);
startActivity(intent);
}
}
}
});
builder.setNegativeButton(R.string.btnCancel, new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog,int which) {
// TODO Auto-generated method stub
}
});
dialog=builder.create();
break;
default:
break;
}
return dialog;
}
@Override
//onclick方法
public void onClick(View v) {
switch (v.getId()) {
//为添加创建监听器
case R.id.add:
try{
if(newsid.getText().toString().equals("")){
Toast.makeText(NewsreportActivity.this, "新闻编号不能为空!", Toast.LENGTH_LONG).show();
}
else{
News news = newsDAO.find(newsid.getText().toString());
if(news==null){
news = new News(newsid.getText().toString(), newsreportName.getSelectedItem().toString(),
newsname.getText().toString(),newscontent.getText().toString(),newsdate.getText().toString());
newsDAO.add(news);
Toast.makeText(NewsreportActivity.this, "成功添加!", Toast.LENGTH_LONG).show();
//增加数据
datashow.setText("增加新闻的信息显示如下:"+"\n"
+"新闻编号:"+newsid.getText().toString()+"\n"
+"新闻发布者:"+newsreportName.getSelectedItem().toString()+"\n"
+"新闻标题:"+newsname.getText().toString()+"\n"
+"新闻内容:"+newscontent.getText().toString()+"\n"
+"新闻时间:"+newsdate.getText().toString());
empty();
}
else{
Toast.makeText(NewsreportActivity.this, "此编号的新闻已存在!", Toast.LENGTH_LONG).show();
empty();
}
}
}
catch (Exception e) {
Log.i(TAG, "出错了");
Log.i(TAG, e.getMessage());
}
break;
//查询全部新闻,显示出全部的新闻
case R.id.find:
if(newsid.getText().toString().equals("")){
try{
Cursor cursor = newsDAO.select();
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.departitem, cursor,
new String[]{"_id","departmentID","departmentName","principal","tel"},
new int[]{R.id._id,R.id.tvdid,R.id.tvdname,R.id.tvdprincipal,R.id.tvdtel});
listview.setAdapter(adapter);
datashow.setText(" ");
//actv.setAdapter(adapter);
}
catch (Exception e) {
Log.i("显示所有", "出错了");
Toast.makeText(NewsreportActivity.this, "显示不了"+e.getMessage(), Toast.LENGTH_LONG).show();
}
}
else{
News news = newsDAO.find(newsid.getText().toString());
if(news!=null)
datashow.setText("新闻编号:"+news.getNewsid()+" 新闻发布者:"+news.getDepartmentName()
+" 新闻标题:"+news.getNewsname()+" 新闻内容:"+news.getNewscontent()+"新闻时间:"+news.getNewsdate());
else
Toast.makeText(NewsreportActivity.this, "此新闻不存在!!", Toast.LENGTH_LONG).show();
empty();
}
break;
default:
break;
}
}
}
Record.java
package com.example.talk;
public class Record{
//设置布局中放置图片的位置
public int getDegrees(float a, float b) {
float dx = a;
float x = b / 4;
float x2 = 3 * b / 4;
if (dx < x / 10)
return 10;
else if (dx < x / 5)
return 9;
else if (dx < x * 3 / 10)
return 8;
else if (dx < x * 2 / 5)
return 7;
else if (dx < x * 5 / 10)
return 6;
else if (dx < x * 3 / 5)
return 5;
else if (dx < x * 7 / 10)
return 4;
else if (dx < x * 4 / 5)
return 3;
else if (dx < x * 9 / 10)
return 2;
else if (dx < x)
return 2;
else if (dx - x2 > x * 9 / 10)
return 10;
else if (dx - x2 > x * 4 / 5)
return 9;
else if (dx - x2 > x * 7 / 10)
return 8;
else if (dx - x2 > x * 3 / 5)
return 7;
else if (dx - x2 > x * 5 / 10)
return 6;
else if (dx - x2 > x * 2 / 5)
return 5;
else if (dx - x2 > x * 3 / 10)
return 4;
else if (dx - x2 > x / 5)
return 3;
else if (dx - x2 > x / 10)
return 2;
return 10;
}
}
SentenceActivity.java
package com.example.talk;
import com.example.kakalauncher.R;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
public class SentenceActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
//隐藏标题栏,运营商图标和电量等
requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sentence);
}
public void goback(View view){
Intent intent=new Intent();
intent.setClass(SentenceActivity.this, TalkmainActivity.class);
startActivity(intent);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.sentence, menu);
return true;
}
}
TalkmainActivity.java
package com.example.talk;
import com.example.kakalauncher.R;
import com.example.manage.ManagermainActivity;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Toast;
//管理员管理留言和发布新闻
pu