Android Studio动态将TextView追加到ListView

时间:2019-02-10 01:53:28

标签: java xml android-studio

我正在尝试执行类似于本教程(https://github.com/ScaleDrone/android-chat-tutorial)中的该聊天操作,但我不想发送短信。

基本上,我希望该程序具有消息的列表视图(就像本教程中既有来自我自己的消息又来自其他人的消息一样。就像您在发短信给某人一样)。

似乎错误来自初始化java_class中的message_Body。

TextView myMessage = (TextView) findViewById(R.id.message_body);

当我调试时说myMessage为空。有没有人可以帮助我调试此问题?谢谢!

my_messages.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingVertical="10dp"
android:paddingRight="15dp"
android:paddingLeft="60dp"
android:clipToPadding="false">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/message_body"
    android:background="@drawable/my_message"
    android:textColor="#fff"
    android:padding="10dp"
    android:elevation="2dp"
    android:textSize="18dp"
    android:layout_alignParentRight="true"
    android:text="Placeholder message"
    />

</RelativeLayout>

their_message.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingVertical="10dp"
android:paddingLeft="15dp"
android:paddingRight="60dp"
android:clipToPadding="false">

<View
    android:id="@+id/avatar"
    android:layout_alignParentLeft="true"
    android:scaleType="centerInside"
    android:background="@drawable/circle"
    android:layout_width="34dp"
    android:layout_height="34dp" />

<TextView
    android:id="@+id/name"
    android:layout_marginLeft="15dp"
    android:layout_toRightOf="@+id/avatar"
    android:layout_alignTop="@+id/avatar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingBottom="4dp"
    android:text="Rose"/>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/message_body"
    android:layout_below="@+id/name"
    android:layout_alignLeft="@+id/name"
    android:background="@drawable/their_message"
    android:paddingVertical="12dp"
    android:paddingHorizontal="16dp"
    android:elevation="2dp"
    android:textSize="18dp"
    android:text="How are you doing? This is a long message that should probably wrap."
    />

</RelativeLayout>

在我的java类中,我有这个

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_detail);

    ListView view = (ListView) findViewById(R.id.mathListView);
    Intent in = getIntent();
    int index = in.getIntExtra("com.example.mathhack.ITEM_INDEX", -1);

    if (index > -1) {
        TextView myMessage = (TextView) findViewById(R.id.message_body);
        List<TextView> textViewList = new ArrayList<TextView>();

        ListAdapter adapter = new ArrayAdapter<TextView>(this, android.R.layout.simple_list_item_1, textViewList);
        myMessage.setText("test1");

        textViewList.add(myMessage);
        view.setAdapter(adapter);
    }
}

0 个答案:

没有答案