实现在聊天界面输入特定的值跳转到新界面
代码:
主布局**
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<ListView
android:layout_width="match_parent"
android:layout_height="0dp"
android:id="@+id/listView"
android:layout_weight="1"
android:divider="#0000">
</ListView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:id="@+id/editText"
android:hint="请在此输入内容"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="发送"
android:id="@+id/button_send"/>
</LinearLayout>
</LinearLayout>
实体类********
public class Chat {
final static int send=0;
final static int receive=1;
String content;
int type;
public Chat(String content, int type) {
this.content = content;
this.type = type;
}
public String getContent() {return content;}
public int getType() {return type;}
}
子项布局**********
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/leftLayout"
android:background="@drawable/qp0218"
android:layout_margin="10dp"><!--与父布局间距10dp-->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:id="@+id/leftTextView"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/rightLayout"
android:background="@drawable/qphy"
android:layout_gravity="right"
android:layout_margin="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/rightTextView"
android:layout_gravity="center"/>
</LinearLayout>
</LinearLayout>
适配器**************
public class ChatAdapter extends ArrayAdapter{
int resource;
public ChatAdapter(Context context, int textViewResourceId, List objects) {
super(context, textViewResourceId, objects);
resource=textViewResourceId;
}
class ViewHolder{
LinearLayout leftLayout;
LinearLayout rightLayout;
TextView leftText;
TextView rightText;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Chat chat= (Chat) getItem(position);
View view;ViewHolder viewHolder;
if (convertView==null){
view= LayoutInflater.from(getContext()).inflate(resource,null);
viewHolder=new ViewHolder();
viewHolder.leftLayout=(LinearLayout)view.findViewById(R.id.leftLayout);
viewHolder.rightLayout=(LinearLayout)view.findViewById(R.id.rightLayout);
viewHolder.leftText=(TextView)view.findViewById(R.id.leftTextView);
viewHolder.rightText=(TextView)view.findViewById(R.id.rightTextView);
view.setTag(viewHolder);
}else {
view=convertView;
viewHolder= (ViewHolder) view.getTag();
}
if (chat.getType()==chat.send){
viewHolder.leftLayout.setVisibility(View.GONE);
viewHolder.rightLayout.setVisibility(View.VISIBLE);
viewHolder.rightText.setText(chat.getContent());
}
if (chat.getType()==chat.receive){
viewHolder.rightLayout.setVisibility(View.GONE);
viewHolder.leftLayout.setVisibility(View.VISIBLE);
viewHolder.leftText.setText(chat.getContent());
}
return view;
}
}
主活动******
public class MainActivity extends Activity {
List<Chat> chatList=new ArrayList<Chat>();
void initChat(){
Chat chat1=new Chat("你好!",Chat.send);
Chat chat2=new Chat("你好!",Chat.receive);
chatList.add(chat1);
chatList.add(chat2);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);
initChat();
final ChatAdapter adapter;
adapter=new ChatAdapter(MainActivity.this,R.layout.item,chatList);
final ListView listView=(ListView)findViewById(R.id.listView);
listView.setAdapter(adapter);
final EditText editText=(EditText)findViewById(R.id.editText);
Button button=(Button)findViewById(R.id.button_send);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String string=editText.getText().toString();
if ("".equals(string)){
Chat chat=new Chat("不可以发送空消息哦!",Chat.receive);
chatList.add(chat);
adapter.notifyDataSetChanged();//更新List
listView.setSelection(chatList.size());//跳到最后
}else if ("1".equals(string)){
Chat chat=new Chat(string,Chat.send);
chatList.add(chat);
editText.setText("");
Chat chat1=new Chat("你输入的内容是“"+string+"”,请继续探索。",Chat.receive);
chatList.add(chat1);
adapter.notifyDataSetChanged();
listView.setSelection(chatList.size());
}else {
//可以的,当我输入的内容是1时会显示到聊天界面上,
//但输入其他值则实现跳转,反过来也一样
Intent intent=new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent);
}
}
});
}
}
3254

被折叠的 条评论
为什么被折叠?



