我已經在我的 activity_main.xml 中添加了一個 id 為 layoutToExpend 的線性布局和一個 id 為 buttonToAdd 的按鈕。我創建了另一個布局,layout_to_copy.xml,其中定義了EditText,它將在主活動中的layoutToExpend內的按鈕點擊時被添加。
所以這里是我在MainActivity.java中的代碼,
butttonToAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
View newEditTexts = getLayoutInflater()。 inflate(R.layout.layout_to_copy,null,false)。
layoutToExpend.addView(newEditTexts)。
}
});
通過這段代碼,每當我點擊按鈕,一個新的EditText被添加。現在我想在添加的EditTexts中寫一些東西,并在一個新的活動中的TextView中顯示它們(假設,通過點擊一個新的按鈕Send Data。
如何做到這一點?誰能解釋一下,我是android studio和java的新手。
uj5u.com熱心網友回復:
這不是一個好方法,請嘗試使用recyclerview,但如果你不想使用它,那么每當你離開當前活動時,例如在點擊按鈕時,請嘗試在線性布局的子專案上運行一個for回圈,像這樣:
public void onClick(View v)
{
LinearLayout l = (LinearLayout)v;
for(int i = 0; i < l.getChildCount(); i )
{
/* 現在通過使用getChiltAt(i)獲得編輯文本物件
并獲取其中的文本*/。
}
}
現在你得到這些edittext中的值,并將其追加到任何字串中,然后將其打包傳遞給下一個活動。
uj5u.com熱心網友回復:
你可以用幾種方法解決這個問題。從你沒有靜態數量的資料源開始,你需要使用ArrayList或類似的東西。你沒有指定,所以我假設你的所有資料都是字串型別的。
首先,你必須宣告ArrayList,就像這樣:
。
ArrayList<String> arrayList = new ArrayList<> ()。
現在你宣告了這個串列,你必須要填充它。你可以這樣做:
arrayList.add("New entry")。
現在你必須在活動之間傳遞資料。對于這一點,有相當多的方法可以做到這一點。你必須選擇適合你的方式,這里我將向你展示兩種不同的方式,用于兩種不同的情況。請注意,以下所有的解決方案都沒有實作持久化資料,所以當你關閉你的應用程式時,你將失去所有的資料。
- 如果你需要在多個活動和不同時刻訪問這些資料,你可以創建一個物件,并在你需要的時候訪問它。 這里有一個例子:
public class YourDataManager{
private ArrayList<String> dataArrayList;
private static YourDataManager實體。
public YourDataManager(ArrayList< String> dataList){
instance = this;
dataArrayList = dataList;
}
public static YourDataManager getInstance(){
return instance。
}
public List<String> getData(){
return dataArrayList;
}
現在,為了SET資料,你必須這樣做:
/Where you have to set data. 假設帶有資料的ArrayList已經被定義和填充。從現在開始,該ArrayList的名字將是arrayList。
YourDataManager dataManager = new YourDataManager(arrayList)。
現在,為了檢索存盤在YourDataManager中的資料,請執行以下操作:
/Retrieve data from YourDataManager<
ArrayList<String> savedArrayList = YourDataManager.getInstance().getData()。
//現在你有了arrayList。
- 第二種方法類似于使用intent發送資料。這種方法的局限性在于,你不能將其保存并從你的應用程式中隨處訪問。然而,對于這種方法,我將把你重定向到這個StackOverflow答案。
uj5u.com熱心網友回復:
對于從編輯文本中取值,有幾種方法。
1/如果你的編輯文本是有限的,比如用戶可以通過點擊添加按鈕添加5個編輯文本,那么你可以在你的XML layour檔案中創建5個編輯文本,并使它們的可見性 "消失",每當你點擊添加按鈕時,一個編輯文本將被看到。 所以現在你可以定義它們的ID,并通過這些ID取值。
2/ 如果你的編輯文本是無限的,那么你可以使用回收器視圖來添加新的編輯文本,所以現在你有新的編輯文本專案的位置ID,你可以通過它來獲取編輯文本的值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/313088.html
標籤:
