2013-12-13 197 views
0

我是新來的android開發。我有一個EditText,一個Button和一個ListView。當我點擊按鈕時,我想將字符串值添加到ListView。我有這個偉大的工作。當鍵盤被隱藏時,ListView不會更新按鈕點擊

但是,如果我按照以下順序執行此操作,那麼UI會得到奇怪的結果。如果我鍵入一些文字,通過點擊電話隱藏鍵盤,然後單擊該按鈕,ListView不會更新爲新項目。該項目已被添加到數據源(List<String>),因爲如果我再次添加另一個項目而沒有隱藏鍵盤,則我上次輸入的項目會與最新項目一起出現。

這是我單擊按鈕時的代碼。

public void AddName(View view) { 
    EditText editText = (EditText) findViewById(R.id.txtAddName); 
    list.add(editText.getText().toString()); 
    editText.setText(""); 
    hideSoftKeyboard(MainActivity.this, view); 
} 
//This takes focus away from the EditText and hides the keyboard. 
public static void hideSoftKeyboard (Activity activity, View view) { 
    InputMethodManager imm = (InputMethodManager)activity.getSystemService(Context.INPUT_METHOD_SERVICE); 
    imm.hideSoftInputFromWindow(view.getApplicationWindowToken(), 0); 
} 

這裏是我填寫ListView。注意GetList()只是返回list與其中的默認值。

public class MainActivity extends Activity { 

private List<String> list = new ArrayList<String>(); 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    ListView lv = (ListView) findViewById(R.id.lvNames); 
    final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, GetList()); 
    lv.setAdapter(adapter); 
    lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, final View view, int position, long id) { 
      final String item = (String) parent.getItemAtPosition(position); 
      view.animate().setDuration(2000).alpha(0).withEndAction(new Runnable() { 
       @Override 
       public void run() { 
        list.remove(item); 
        adapter.notifyDataSetChanged(); 
        view.setAlpha(1); 
       } 
      }); 
     } 
    }); 
} 
+0

後更換您的list.add適配器和當你更新你的ListView的代碼。 – JJ86

回答

2

您是否嘗試過將adapter.notifyDataSetChanged()添加到AddName方法的結尾?

如果仍然無法工作嘗試adapter.add

+0

要做到這一點我將不得不在類級聲明'adapter'而不是'onCreate'? –

+0

是的你應該。 – Gooziec

相關問題