我必須在我的android應用程序中向您尋求特定活動的幫助。我想要在其旁邊有一個textfield
的項目說明清單。這textfield
是用來投入數量。每行使用TextView和EditText的列表視圖
我想通過使用自定義行佈局使用列表視圖來做到這一點,但我想知道這是否正確的方式去做到這一點。
我將從代碼中填充列表,因爲這些項是從web服務中獲取的。
那麼完成這個的最好方法是什麼?使用列表視圖還是使用不同的視圖?編輯文本編輯完成後,我可以寫入我的域對象嗎?
我必須在我的android應用程序中向您尋求特定活動的幫助。我想要在其旁邊有一個textfield
的項目說明清單。這textfield
是用來投入數量。每行使用TextView和EditText的列表視圖
我想通過使用自定義行佈局使用列表視圖來做到這一點,但我想知道這是否正確的方式去做到這一點。
我將從代碼中填充列表,因爲這些項是從web服務中獲取的。
那麼完成這個的最好方法是什麼?使用列表視圖還是使用不同的視圖?編輯文本編輯完成後,我可以寫入我的域對象嗎?
這是什麼,我已經爲我的當前項目所做的例子。
//java for my class
import java.util.ArrayList;
import java.util.List;
import android.app.ListActivity;
import android.database.Cursor;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
public class editpage extends ListActivity {
int editCount;
private dbadapter mydbhelper;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.edit_list);
mydbhelper = new dbadapter(this);
mydbhelper.open();
fillData();
}
private void fillData() {
Cursor e = mydbhelper.getUserWord();
startManagingCursor(e);
// Create an array to specify the fields we want to display in the list (TITLE,DATE,NUMBER)
String[] from = new String[] {dbadapter.KEY_USERWORD,};
// an array of the views that we want to bind those fields to (in this case text1,text2,text3)
int[] to = new int[] {R.id.textType,};
// Now create a simple cursor adapter and set it to display
SimpleCursorAdapter editadapter =
new SimpleCursorAdapter(this, R.layout.edit_row, e, from, to);
ListView list = getListView();
View footer = getLayoutInflater().inflate(R.layout.footer_layout, list, false);
list.addFooterView(footer);
setListAdapter(editadapter);
editCount = e.getCount();
}
public void onClick(View footer){
final MediaPlayer editClickSound = MediaPlayer.create(this, R.raw.button50);
editClickSound.start();
};
@Override
protected void onListItemClick(ListView list, View v, int position, long id)
{
super.onListItemClick(list, v, position, id);
//final Intent intent = new Intent(this, title.class);
//startActivityForResult(intent, position);
}
然後對於我的光標,請注意我有多個where語句。我做這個BC我有一個多層次的列表視圖。類別 - >源 - >標題 - >用戶單詞。
// retrieves all the descriptions for the edittext fields
public Cursor getUserWord()
{
return myDataBase.query(USER_WORD_TABLE, new String[] {
KEY_ID,
KEY_CATEGORY,
KEY_SOURCE, KEY_TITLE, KEY_EDITWORD, KEY_USERWORD
},
KEY_CATEGORY+ "=" + categories.categoryClick + " AND " + KEY_SOURCE+ "="
+source.sourceClick + " AND " + KEY_TITLE+ "=" + title.titleClick,
null, null, null, KEY_ID);
}
最後我有我的xml來顯示這個。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<ListView android:id="@+id/android:list"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="0.8"/>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" android:layout_gravity="left">
<TextView
android:id="@+id/textType"
android:layout_width="150dip"
android:layout_height="fill_parent"
android:textSize="10dip"
android:gravity="center|center_vertical"
android:height="30dip"
android:text="spaceholder"
android:layout_gravity="center_vertical"
android:layout_margin="2dp"/>
<EditText
android:id="@+id/editText"
android:layout_width="160dip"
android:layout_height="30dip"
android:layout_gravity="left"
android:gravity="left"
android:textSize="10dip"
android:height="25dip">
</EditText>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:id="@+id/confirminedit"
android:layout_weight="0.2"
android:layout_width="wrap_content"
android:layout_height="0dip"
android:text="@string/confirmbutton"
android:onClick="onClick"
android:layout_alignParentBottom="true" />
</LinearLayout>
最後一個XML用於帶有確認按鈕的頁腳。因此,在用戶填充edittext之後,它將獲取數據並將其存儲爲下一個要使用的活動。這個函數是我目前正在處理的,但是這個代碼應該給你一個關於你所問的東西的好主意。
你說的方式是創建帶有可聚焦EditText的ListView。
爲此,您需要爲listview創建一個自定義適配器,使用一個EditText創建一個原始佈局,並通過創建一個適配器類爲每行添加相同的內容。
這就是我的想法,但這是最佳做法嗎?到目前爲止,我還沒有看到類似的東西。 – 2012-01-02 09:26:05
@BartVanRemortele這取決於你的要求是什麼樣的。 – 2012-01-02 09:33:00