在运行时添加内容

时间:2013-01-29 16:34:36

标签: java android

我刚刚开始学习Android,并且一直致力于一个简单的应用程序,用户可以与计算机进行简单的对话。

我的问题是,如何在运行时期间以允许用户输入显示在视图上的方式设置UI?随着输入提示的增加,将会有更多内容显示,因此我需要使用滚动条,我相信滚动条可以由滚动视图布局来处理。

基本上,我想要实现的内容与聊天应用程序在运行时显示内容的方式非常相似。我该怎么做呢?我环顾四周,但不能指出自己正确的方向。

2 个答案:

答案 0 :(得分:1)

有多种方法:

  1. 使用ListView甚至ListActivity并将每条新邮件添加为新条目。 ListView默认情况下是可滚动的。
  2. 使用TextViewandroid:inputType=textMultiLine一起使用简单的多行文字视图。
  3. 您还可以使用2. EditText来标记对话的部分内容,复制它们等等。另请参阅:Copy text from Android AlertDialog?
  4. 如果我在哪里,我会按此顺序尝试。我还会创建一个自定义ListAdapter并覆盖getView()来自定义您想要的邮件。这是一个例子(不完全相同,但应该给你一个想法):Android Spinner databind using array list

    一个想法是让您发送的所有邮件都向左对齐,并且所有收到的邮件都保持对齐。这样,它看起来就像是iOS消息传递应用程序。

答案 1 :(得分:0)

您可以使用ScrollView创建聊天会话。首先,尝试这样的事情:

ChatActivity.java:

import android.app.Activity;
import android.os.Bundle;
import android.widget.LinearLayout;
import android.widget.TextView;

public class ChatActivity extends Activity{

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

        LinearLayout layout = (LinearLayout)findViewById(R.id.chatWindow);

        //When you get a new message to display, you can add it at runtime like this:
        TextView message1 = new TextView(this);
        message1.setText("how are you");
        layout.addView(message1);

        //Add another message
        TextView message2 = new TextView(this);
        message1.setText("I'm fine");
        layout.addView(message2);

    }

}

然后创建一个chat.xml资源:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <LinearLayout
        android:id="@+id/chatWindow"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" />

</ScrollView>

稍后,您可以使用类似AsyncTask的内容在更新聊天时更好地与用户进行交互。 AsyncTask允许您在用户使用UI时在后台执行操作。

相关问题