1

我想在Android控件中進行文本來回交互。想法是這樣的:帶有單個可編輯行的TextView

這是程序輸出的一些文本。

你叫什麼名字? |

與光標|(請注意,編輯不會開始在最後一行的開始處)。然後用戶可以自由輸入文本(使用任何Android輸入法,鍵盤等),但不允許更改任何輸出。理想情況下,用戶輸入的樣式不同。

然後,一旦輸入換行符,我要通知程序和編輯,以停止:

這是通過一些程序輸出的文本。

你叫什麼名字? Foo Bar

你好,Foo吧!

請注意,這需要一個適當的控制,也就是我可以與其他控件合成,使其成爲應用程序主佈局的一部分。

+0

我想我可以做的一件事就是在某個地方有一個看不見的EditText,專注於編輯,然後改變主TextView的內容keypress-by-keypress。但是這會消除用戶在可編輯部分移動光標的能力。 – Cactus

+0

好的,所以答案中的一致似乎是爲「問題」製作一個單獨的「TextView」,爲「答案」製作一個單獨的「EditText」。那麼,如果在頂部有一個大的「TextView」(包含目前爲止的對話框),左邊有一行「TextView」,右邊有一行「EditText」?這個最後一行與大型TextView的「正確的」新段落的距離是否恰到好處? – Cactus

回答

1

我會建議你創建一個新的LinearLayout(+的TextView EditText上)並分配喜歡的EditText佈局的背景和EditText上沒有背景。 在EDITTEXT完成後,您可以顯示在底部

+0

我該如何找出放置'EditText'的座標? – Cactus

+0

水平放置兩個項目(TextView和EdiText),在TextView的末尾,EditText將從光標開始處開始。你也可以使用你的edittext的任何風格 –

2

TextViewEditText彼此相鄰,然後解決問題,並在EditText中添加以下代碼行。

android:singleLine= 'true'; 

它只允許輸入一行到EditText。讓我知道這是否是你的期望。

<?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="match_parent"> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:text="What is your Name?" 
    android:id="@+id/textView" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentStart="true" /> 

<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:singleLine="true" 
    android:id="@+id/editText" 
    android:layout_alignParentTop="true" 
    android:layout_toEndOf="@+id/textView" /> 
</RelativeLayout> 
+1

您可以創建EditText並將其與您創建的TextView對齊。這應該適合你。 –

+0

讓我知道您的問題是否已解決。 –

+0

謝謝,現在無法嘗試,但當我接近它時會回覆。 – Cactus

1

一個新的TextView你需要一個ListView在頂部,顯示您的通話&然後在它下面,需要水平觀點與TextView(顯示問題)和EditText (背景透明 - 要求用戶填寫答案)。

2

這是程序輸出的一些文本。

你叫什麼名字? |

將光標置於| (注意,編輯不在最後一行的開頭 處開始)。然後用戶可以自由輸入文本(使用任何 Android輸入法,鍵盤等),但不允許更改目前輸出的任何 。理想情況下,用戶輸入的樣式不同於 。

我強烈建議重新考慮一下你的設計,因爲在LinearLayout,Editext,TextView的幫助下,可以使用非常簡單和更易於管理的方法完成同樣的事情。

相關問題