2013-03-23 20 views
0

我一直有一個奇怪的問題,有一些EditTexts,我在我的行ListView一些EditTexts的值似乎移動到其他EditTexts

基本上,用戶從一項活動中選擇一些練習,當他點擊下一個按鈕時,一個新的活動啓動,他需要輸入他選擇的練習的信息。這些信息包括權重,代表和集合。

一些練習可能不需要重量。如果是這樣的情況下,我設置的ListView行的weightEditText爲啓用爲false:

EditText weight = (EditText)v.findViewById(R.id.weightChosen); 

CustomExercisesDB exs = new CustomExercisesDB(cont); 
exs.open(); 

int weightable = exs.isWeightable(chosenExercisesNames.get(position)); 
exs.close(); 
if(weightable==0) 
{ 
    weight.setEnabled(false); 
} 

上面的代碼放在我的自定義適配器的getViewListView

現在如果讓我們說,用戶已經選擇3次的練習,其中有一個不需要的權重,然後在那裏他需要輸入的信息爲每重量活性看起來是這樣的: enter image description here

當用戶點擊第一練習的兩個EditText鍵入一些數值,彈出鍵盤,用戶在第一練習中爲每個EditText輸入一些數值。

enter image description here

現在的問題是,當用戶可以說點擊返回按鈕,在EditTexts的第一個練習中輸入的值似乎跳轉到ListView的最後一個練習的最後兩個EditTexts。事情是這樣的:

enter image description here

這是不對的,因爲這些信息應該爲Pick Push up設置,而不是Shoulder press

究竟是什麼導致了這個問題,我該如何克服它。

請告訴我,如果您需要我認爲您認爲是相關的代碼的其他內容。我不想包含很多可能無關緊要的代碼。

另外,如果我再次點擊第一個練習的EditTexts之一,則值會從上一練習跳轉回來。這就像我輸入的值「掛在」EditTexts之外,彈出的鍵盤似乎讓他們跳了起來。

謝謝

回答

0

我已經解決了這個問題。

如果有人遇到類似問題,您只需將android:windowSoftInputMode="adjustPan"置於manifest的活動下。

因此,我爲每個練習輸入信息的活動稱爲SetCustomExercisesInfo,我將android:windowSoftInputMode="adjustPan"放在其中。

<activity 
      android:name=".SetCustomExercisesInfo" 
      android:label="@string/setCusExInfo" 
      android:windowSoftInputMode="adjustPan" > 
</activity> 
+1

不是由於列表視圖重新使用視圖引起的問題,因此如果用戶已經滾動,滾動之前的舊視圖將顯示爲新的視圖? – 2013-03-23 19:54:58

+0

@androiddeveloper我不完全肯定是誠實的。 – 2013-03-23 20:24:09