要实现上述message聊天功能,该如何在MessageDetialActivity中添加代码,实现item的动态添加??friend_item.xml
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout android:orientation="horizontal"
android:id="@+id/message_detail_friend_item" 
android:paddingLeft="4.0dip"
android:paddingTop="4.0dip" 
android:paddingRight="4.0dip"
android:paddingBottom="4.0dip" 
android:layout_width="fill_parent"
android:layout_height="wrap_content"  
android:layout_marginTop="2.0dip" 
android:layout_marginBottom="2.0dip"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout 
android:id="@+id/message_detail_item_avatar_layout" 
android:gravity="center"
android:background="@drawable/news_headborder"
android:layout_width="wrap_content" 
android:layout_height="wrap_content"
android:layout_marginLeft="5.0dip" 
android:layout_marginTop="2.0dip"
android:layout_marginRight="5.0dip"
xmlns:android="http://schemas.android.com/apk/res/android">
<ImageView 
android:id="@+id/message_detail_item_avatar"
android:layout_width="33.0dip" 
android:layout_height="33.0dip"
android:src="@drawable/news_head" />
</LinearLayout>

<LinearLayout 
android:orientation="vertical"
android:background="@drawable/leftbubble_bg" 
android:paddingLeft="16.0dip"
android:paddingTop="8.0dip" 
android:paddingRight="8.0dip"
android:paddingBottom="8.0dip" 
android:layout_width="fill_parent"
android:layout_height="wrap_content" 
android:layout_weight="1.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout 
android:orientation="horizontal"
android:layout_width="wrap_content" 
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView 
android:id="@+id/message_detail_item_name" 
android:textSize="16.0dip" 
android:textColor="@drawable/blue1"
android:background="@android:drawable/list_selector_background"
android:clickable="true" 
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView 
android:id="@+id/message_detail_item_time" 
android:textSize="16.0dip" 
android:textColor="@drawable/gray2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" 
android:layout_marginLeft="5.0dip" />
</LinearLayout>

<TextView 
android:id="@+id/message_detail_item_content"
android:textColor="@drawable/black"
android:layout_width="wrap_content" 
android:layout_height="wrap_content"
android:layout_marginTop="5.0dip" />
<TextView 
android:id="@+id/message_detail_item_attachment_des"
android:textStyle="bold" 
android:textColor="@drawable/black"
android:visibility="gone" 
android:layout_width="wrap_content"
android:layout_height="wrap_content" 
android:layout_marginTop="10.0dip" />
<LinearLayout 
android:id="@+id/message_detail_item_attachment_list"
android:orientation="vertical"
android:visibility="gone" 
android:layout_width="wrap_content"
android:layout_height="wrap_content" 
android:layout_marginTop="4.0dip"
android:layout_marginBottom="4.0dip"
xmlns:android="http://schemas.android.com/apk/res/android" />
</LinearLayout>
</LinearLayout>
-------------------------------------------------------------------------------------------me_item.xml<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout 
android:id="@+id/message_detail_me_item"
android:orientation="horizontal"
android:paddingLeft="4.0dip"
android:paddingTop="4.0dip" 
android:paddingRight="4.0dip"
android:paddingBottom="4.0dip" 
android:layout_width="fill_parent"
android:layout_height="wrap_content" 
android:layout_marginTop="2.0dip"
android:layout_marginBottom="2.0dip"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout 
android:orientation="vertical"
android:background="@drawable/rightbubble_bg" 
android:paddingLeft="8.0dip"
android:paddingTop="8.0dip" 
android:paddingRight="16.0dip"
android:paddingBottom="8.0dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout 
android:orientation="horizontal"
android:layout_width="wrap_content" 
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView 
android:id="@+id/message_detail_item_name" 
android:textSize="16.0dip" 
android:textColor="@drawable/blue1"
android:background="@android:drawable/list_selector_background"
android:clickable="true" 
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView 
android:id="@+id/message_detail_item_time" 
android:textColor="@drawable/gray2"
android:textSize="16.0dip" 
android:layout_width="wrap_content"
android:layout_height="wrap_content" 
android:layout_marginLeft="6.0dip" />
</LinearLayout>

<TextView 
android:id="@+id/message_detail_item_content"
android:textColor="@drawable/black" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"
android:layout_marginTop="5.0dip" />
<TextView 
android:id="@+id/message_detail_item_attachment_des"
android:textStyle="bold" 
android:textColor="@drawable/black"
android:visibility="gone" 
android:layout_width="wrap_content"
android:layout_height="wrap_content" 
android:layout_marginTop="10.0dip" />
<LinearLayout  
android:id="@+id/message_detail_item_attachment_list"
android:orientation="vertical"
android:visibility="gone"
android:layout_width="wrap_content"
android:layout_height="wrap_content" 
android:layout_marginTop="4.0dip"
android:layout_marginBottom="4.0dip"
xmlns:android="http://schemas.android.com/apk/res/android" >
</LinearLayout>
</LinearLayout>

<LinearLayout
android:id="@+id/message_detail_item_avatar_layout" 
android:gravity="center"
android:background="@drawable/news_headborder"
android:layout_width="wrap_content" 
android:layout_height="wrap_content"
android:layout_marginLeft="5.0dip" 
android:layout_marginTop="2.0dip"
android:layout_marginRight="5.0dip"
xmlns:android="http://schemas.android.com/apk/res/android">
<ImageView 
android:id="@+id/message_detail_item_avatar"
android:layout_width="33.0dip" 
android:layout_height="33.0dip"
android:src="@drawable/news_head" />
</LinearLayout>
</LinearLayout>---------------------------------------------------------------------------------------
                          接楼下

解决方案 »

  1.   

    MessageDetailActivity代码
    package com.vanceinfo.activity;import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;import android.app.Activity;
    import android.os.Bundle;
    import android.text.Layout;
    import android.view.View;
    import android.view.ViewGroup.LayoutParams;
    import android.widget.Button;
    import android.widget.ImageView;
    import android.widget.LinearLayout;
    import android.widget.TextView;import com.vanceinfo.R;
    import com.vanceinfo.protocol.ProtocolAPI;
    import com.vanceinfo.test.TestMessage;public class MessageDetailActivity extends Activity {
    private Button inboxButton, replyButton;
    private ImageView titleIcon, headIcon;
    private TextView titleText, nameText, timeText;
    private LinearLayout layout, me_item_Layout, friend_item_Layout;
    private long uid; @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.message_detail_activity);
    inboxButton = (Button) findViewById(R.id.kaixin_title_bar_left_button);
    replyButton = (Button) findViewById(R.id.kaixin_title_bar_right_button);
    titleIcon = (ImageView) findViewById(R.id.kaixin_title_bar_center_icon);
    titleText = (TextView) findViewById(R.id.kaixin_title_bar_center_text);
    titleIcon.setVisibility(View.GONE);
    inboxButton.setBackgroundResource(R.drawable.title_arrow_button);
    replyButton.setBackgroundResource(R.drawable.title_text_button);
    inboxButton.setText(R.string.message_inbox);
    replyButton.setText(R.string.reply);
    layout = (LinearLayout) findViewById(R.id.message_detail_activity_content);
    nameText = (TextView) findViewById(R.id.message_detail_item_name);
    timeText = (TextView) findViewById(R.id.message_detail_item_time);
    headIcon = (ImageView) findViewById(R.id.message_detail_item_avatar);
    me_item_Layout = (LinearLayout) findViewById(R.layout.message_detail_me_item);
    friend_item_Layout = (LinearLayout) findViewById(R.layout.message_detail_friend_item);
    addView();
    }
    /**
     * 
     * @return
     */
    public JSONArray getData() {
    long uid = TestMessage.uid;
    String verify = TestMessage.verify;
    long mid = TestMessage.mid;
    JSONObject jsonObject = null;
    Short n = 5;
    try {
    jsonObject = ProtocolAPI.messageDetial(uid, verify, TestMessage.mid, n);
    JSONArray messageArray = jsonObject.getJSONArray("msgs");
    uid = jsonObject.getLong("uid");
    return messageArray;
    } catch (Exception e) {
    e.printStackTrace();
    }
    return null;
    } public void addView() {
    JSONArray array = getData();
    JSONObject jsonObject = new JSONObject();
    for (int i = 0; i < array.length(); i++) {
    try {
    jsonObject = array.getJSONObject(i);
    if (jsonObject.getLong("uid") == uid) {

    //说明:在me_item_Layout和friend_item_Layout两个item布局文件中,nameText和timeText采用的是相同的id

    //更新me_item_Layout中nameText,timeText的值,并将me_item_Layout添加到layout中
    //这里的代码该如何添加???????

    // nameText.setText(jsonObject.getString("fname"));
    // timeText.setText(jsonObject.getInt("ctime"));
    // layout.addView(me_item_Layout);
    } else {

    //更新friend_item_Layout中nameText,timeText的值,并将friend_item_Layout添加到layout中
    //这里的代码该如何添加???????


    // nameText.setText(jsonObject.getString("fname"));
    // timeText.setText(jsonObject.getInt("ctime") );
    // layout.addView(friend_item_Layout);
    }
    } catch (JSONException e) {
    e.printStackTrace();
    }
    }
    }
    }
    ------------------------------------------------------------------------------------message_detail_activity.xml  
    <?xml version="1.0" encoding="UTF-8"?>
    <LinearLayout 
    android:orientation="vertical"
    android:background="@drawable/message_detail_bg" 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android">

    <include android:id="@+id/kaixin_desktop_title_bar" layout="@layout/kaixin_title_bar" />

    <LinearLayout android:gravity="center"
    android:id="@+id/message_detail_progress_item"
    android:orientation="horizontal" 
    android:paddingTop="10.0dip" 
    android:paddingBottom="10.0dip"
    android:visibility="gone" 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android">
    <ProgressBar 
    android:layout_gravity="center_vertical"
    android:visibility="visible" 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:layout_marginRight="4.0dip"
    android:indeterminateDrawable="@drawable/progress_bar_drawable"
    style="?android:progressBarStyleSmall" />
    <TextView 
    android:textSize="18.0dip" 
    android:textColor="@drawable/gray1"
    android:gravity="center" 
    android:layout_gravity="center_vertical"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"
    android:text="@string/downloading" />
    </LinearLayout>

    <ScrollView 
    android:id="@+id/message_detail_activity_main_layout"
    android:paddingBottom="5.0dip" 
    android:scrollbars="vertical"
    android:fadingEdge="none" 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    xmlns:android="http://schemas.android.com/apk/res/android">
    <LinearLayout 
    android:orientation="vertical"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <TextView 
    android:id="@+id/message_detail_activity_friends_des"
    android:textColor="@drawable/black"
    android:visibility="gone" android:layout_width="wrap_content"
    android:layout_height="wrap_content" android:layout_marginLeft="4.0dip"
    android:layout_marginTop="6.0dip" android:layout_marginRight="4.0dip"
    android:layout_marginBottom="4.0dip" />
    <TextView 
    android:id="@+id/message_detail_activity_type_des"
    android:textSize="18.0dip" 
    android:textStyle="bold"
    android:textColor="@drawable/red" 
    android:visibility="gone" android:layout_width="wrap_content"
    android:layout_height="wrap_content" android:layout_marginLeft="4.0dip"
    android:layout_marginTop="6.0dip" android:layout_marginRight="4.0dip"
    android:layout_marginBottom="4.0dip" android:text="@string/private_message" />



    <!-- start 需要添加me_item.xml或friend_item.xml的布局 -->

    <LinearLayout 
    android:id="@+id/message_detail_activity_content"
    android:orientation="vertical"
    android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:layout_marginLeft="4.0dip" android:layout_marginTop="4.0dip"
    android:layout_marginRight="4.0dip" android:layout_marginBottom="4.0dip"
    xmlns:android="http://schemas.android.com/apk/res/android" />


    <!-- end 需要添加me_item.xml或friend_item.xml的布局 -->




    <Button 
    android:id="@+id/message_detail_activity_reply" 
    android:textSize="16.0dip" 
    android:textColor="@drawable/blue1"
    android:gravity="center"
    android:layout_gravity="center_horizontal"
    android:background="@drawable/white_button_style"
    android:layout_width="200.0dip" 
    android:layout_height="40.0dip"
    android:layout_marginTop="10.0dip" 
    android:layout_marginBottom="10.0dip"
    android:text="@string/reply" />
    </LinearLayout>
    </ScrollView>
    </LinearLayout>
      

  2.   

    这个应该自己定义Scroll List中Item的View,每个item使用me.xml的布局,然后更新List的Adapter。
    friend列表也采用同样的方式。原理是一样的。
    PS:看最上面的状态栏图标很像开心网的应用?
      

  3.   

    http://blog.csdn.net/meizhen51/article/details/6577647