您的位置:首页 > 移动开发 > Android开发

聊天对话反馈到ListView,点击读取

2016-05-26 11:33 375 查看
TextDialogueActivity 1) 主要是用于信息创建,启动第二个Activity,

2) 信息读取,显示在ListView中,

3) 点击ListView,将组名传参,以及启动第二个Activity,读取到之前的信息

package com.yeezone.cluster;

import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.database.Cursor;
import android.content.BroadcastReceiver;
import android.util.Log;

import android.os.Handler;
import android.os.HandlerThread;
import android.os.Message;
import android.os.MessageQueue;
import android.os.Looper;
import android.graphics.Color;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.TextView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.EditText;
import android.widget.ListView;

import java.util.ArrayList;
import java.util.List;

import com.yeezone.atservice.common.ATManager;

import com.yeezone.atservice.common.TrunkGroupInfo;
import com.yeezone.atservice.common.TrunkRingInfo;
import com.yeezone.atservice.common.TrunkSmsInfo;

public class TextDialogueActivity extends Activity {
private static final String TAG = "TextDialogueActivity";
private MenuItem mMenuNewMessage;
private GroupListViewAdapter mAdapter;
private List<String> data = new ArrayList<String>();
private ComeModle mComeModle;
private Cursor mCursor;
private ListView mListView;
private int GROUP_ID = 0;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("action.refreshList");
registerReceiver(mRefreshBroadcastReceiver, intentFilter);

initViews();
}

private void initViews() {
setContentView(R.layout.text_dialogue);
mListView = (ListView) findViewById(R.id.listView);
Log.d(TAG, "data count:" + data.size());
mComeModle = new ComeModle(TextDialogueActivity.this);
mCursor=mComeModle.lookGroupToCursor();
data = mComeModle.lookGroup();
Log.d(TAG, "data count:" + data.size());

mAdapter = new GroupListViewAdapter(this, data);
mAdapter.notifyDataSetChanged();
mListView.setAdapter(mAdapter);

mListView.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
mCursor.moveToPosition(position);
GROUP_ID = mCursor.getInt(0);
String GROUP_NAME=mCursor.getString(1);
Log.d(TAG, String.valueOf(GROUP_ID));
Log.d(TAG, "name:"+GROUP_NAME);
Intent intent = new Intent(TextDialogueActivity.this,CreateMessageActivity.class);
intent.putExtra("id",GROUP_ID);
intent.putExtra("name",GROUP_NAME);
startActivity(intent);
}
});
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.conversation_list_menu, menu);

return true;
}

@Override
public boolean onPrepareOptionsMenu(Menu menu) {

mMenuNewMessage = menu.findItem(R.id.action_compose_new);
// mMenuGroupListSettings.setVisible(true);
// mMenuAbout.setVisible(true);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
Intent intent;

switch (item.getItemId()) {
case R.id.action_compose_new:
intent = new Intent(this, CreateMessageActivity.class);
startActivity(intent);
break;
}
return super.onOptionsItemSelected(item);
}

// broadcast receiver
private BroadcastReceiver mRefreshBroadcastReceiver = new BroadcastReceiver() {

@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals("action.refreshList"))
{
mAdapter.notifyDataSetChanged();
}
}
};

@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(mRefreshBroadcastReceiver);
}
}


CreateMessageActivity
1)新信息创建,进行判断

2)如果点击,根据之前传递的群主名读取到相关数据

3)根据数据库读取到群主名,判断是否重复,如果重复不新添加到ListView中

package com.yeezone.cluster;

import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.BroadcastReceiver;
import android.util.Log;
import android.graphics.BitmapFactory;

import android.os.Handler;
import android.os.HandlerThread;
import android.os.Message;
import android.os.MessageQueue;
import android.os.Looper;
import android.graphics.Color;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ListView;

import java.util.List;

import org.apache.http.impl.client.TunnelRefusedException;

import java.util.ArrayList;
import com.yeezone.atservice.common.ATManager;

import com.yeezone.atservice.common.TrunkGroupInfo;
import com.yeezone.atservice.common.TrunkRingInfo;
import com.yeezone.atservice.common.TrunkSmsInfo;

public class CreateMessageActivity extends Activity {
private final String TAG = "CreateMessageActivity";

private List<RecorderUtil> data = new ArrayList<RecorderUtil>();
private List<String> mData = new ArrayList<String>();
private static ChatItemListViewAdapter mAdapter = null;
private ComeModle mComeModle;
private ListView mListView;
private EditText mEditText;
private EditText mGroup;
private ImageButton mButton;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

initViews();

}

private void initViews() {
setContentView(R.layout.create_message);
mListView = (ListView) findViewById(R.id.listView_chat);
mEditText = (EditText) findViewById(R.id.text_input_box);
mGroup = (EditText) findViewById(R.id.send_to_people);
mButton = (ImageButton) findViewById(R.id.text_input_button);
mComeModle = new ComeModle(CreateMessageActivity.this);

try {
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
int groupId = bundle.getInt("id");
String GROUP_NAME = bundle.getString("name");
Log.d(TAG, "groupId" + groupId);
Log.d(TAG, "name:" + GROUP_NAME);
data = mComeModle.findWordByName(GROUP_NAME);
mGroup.setText(GROUP_NAME);
scrollToBottomListItem();
} catch (Exception e) {
Log.i("exception", e.toString());
}

mButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String text = mEditText.getEditableText().toString();
String groupName = mGroup.getEditableText().toString();
if (groupName.equals("")) {
Toast.makeText(CreateMessageActivity.this, getString(R.string.group_content), Toast.LENGTH_LONG)
.show();
} else if (text.equals("")) {
Toast.makeText(CreateMessageActivity.this, getString(R.string.shuru_content), Toast.LENGTH_LONG)
.show();
} else {
mComeModle.saveWord(groupName, 1, text);
Intent intent = new Intent();
intent.setAction("action.refreshList");
sendBroadcast(intent);
mEditText.setText("");
RecorderUtil recorder = new RecorderUtil(groupName, 1, text);
data.add(recorder);
mAdapter.notifyDataSetChanged();
scrollToBottomListItem();
mData = mComeModle.lookGroup();
Log.d(TAG, "mdata:" + mData.size());

if (mData.size() == 0) {
Log.d(TAG, "mdata:" + "is 0??");
mComeModle.saveGroup(groupName);

} else {
if (mData.contains(groupName)) {
Log.d(TAG, "same");
return;
} else {
mComeModle.saveGroup(groupName);
Log.d(TAG, "different");
}
}
}
}
});
mAdapter = new ChatItemListViewAdapter(this, data);
mListView.setAdapter(mAdapter);

}

/**
* mListView.getAdapter().getCount()-1
*
* @Description 滑动到列表底部
*/
private void scrollToBottomListItem() {
mListView.setSelection(mListView.getAdapter().getCount() - 1);
}

}


有关数据库代码

package com.yeezone.cluster;

import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.BroadcastReceiver;
import android.util.Log;
import android.graphics.BitmapFactory;

import android.os.Handler;
import android.os.HandlerThread;
import android.os.Message;
import android.os.MessageQueue;
import android.os.Looper;
import android.graphics.Color;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ListView;

import java.util.List;

import org.apache.http.impl.client.TunnelRefusedException;

import java.util.ArrayList;
import com.yeezone.atservice.common.ATManager;

import com.yeezone.atservice.common.TrunkGroupInfo;
import com.yeezone.atservice.common.TrunkRingInfo;
import com.yeezone.atservice.common.TrunkSmsInfo;

public class CreateMessageActivity extends Activity {
private final String TAG = "CreateMessageActivity";

private List<RecorderUtil> data = new ArrayList<RecorderUtil>();
private List<String> mData = new ArrayList<String>();
private static ChatItemListViewAdapter mAdapter = null;
private ComeModle mComeModle;
private ListView mListView;
private EditText mEditText;
private EditText mGroup;
private ImageButton mButton;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

initViews();

}

private void initViews() {
setContentView(R.layout.create_message);
mListView = (ListView) findViewById(R.id.listView_chat);
mEditText = (EditText) findViewById(R.id.text_input_box);
mGroup = (EditText) findViewById(R.id.send_to_people);
mButton = (ImageButton) findViewById(R.id.text_input_button);
mComeModle = new ComeModle(CreateMessageActivity.this);

try {
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
int groupId = bundle.getInt("id");
String GROUP_NAME = bundle.getString("name");
Log.d(TAG, "groupId" + groupId);
Log.d(TAG, "name:" + GROUP_NAME);
data = mComeModle.findWordByName(GROUP_NAME);
mGroup.setText(GROUP_NAME);
scrollToBottomListItem();
} catch (Exception e) {
Log.i("exception", e.toString());
}

mButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String text = mEditText.getEditableText().toString();
String groupName = mGroup.getEditableText().toString();
if (groupName.equals("")) {
Toast.makeText(CreateMessageActivity.this, getString(R.string.group_content), Toast.LENGTH_LONG)
.show();
} else if (text.equals("")) {
Toast.makeText(CreateMessageActivity.this, getString(R.string.shuru_content), Toast.LENGTH_LONG)
.show();
} else {
mComeModle.saveWord(groupName, 1, text);
Intent intent = new Intent();
intent.setAction("action.refreshList");
sendBroadcast(intent);
mEditText.setText("");
RecorderUtil recorder = new RecorderUtil(groupName, 1, text);
data.add(recorder);
mAdapter.notifyDataSetChanged();
scrollToBottomListItem();
mData = mComeModle.lookGroup();
Log.d(TAG, "mdata:" + mData.size());

if (mData.size() == 0) {
Log.d(TAG, "mdata:" + "is 0??");
mComeModle.saveGroup(groupName);

} else {
if (mData.contains(groupName)) {
Log.d(TAG, "same");
return;
} else {
mComeModle.saveGroup(groupName);
Log.d(TAG, "different");
}
}
}
}
});
mAdapter = new ChatItemListViewAdapter(this, data);
mListView.setAdapter(mAdapter);

}

/**
* mListView.getAdapter().getCount()-1
*
* @Description 滑动到列表底部
*/
private void scrollToBottomListItem() {
mListView.setSelection(mListView.getAdapter().getCount() - 1);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android listview 聊天