2015-11-19 23 views
0

我正在設計一個使用android studio和fire-base的聊天應用程序,並且獲得了關於如何讓用戶在編輯文本字段上輸入時聽衆的庫存用戶在fire-base上的值將更改爲true並且當用戶不打字時,該值將變爲false。我正在尋找這個解決方案一個星期左右,並沒有找到任何關於我的研究的答案。如何在用戶開始輸入時創建監聽器?

如何把TextWatcher?

public class MainActivity extends AppCompatActivity{ 


private EditText editText; 
private ListView listView; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    counter = 0; 
    Firebase.setAndroidContext(this); 
    final Firebase firebase = new Firebase("https://samp-is.firebaseio.com/"); 


    editText = (EditText) findViewById(R.id.editText); 
    listView = (ListView) findViewById(R.id.listView); 

    listView.setAdapter(new MessageAdapter(this, Message.class, R.layout.fragment_message, firebase.child("chat"))); 

    Button button = (Button) findViewById(R.id.button); 

    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      counter++; 

      Message message = new Message(); 

      message.setMessage(editText.getText().toString()); 
      editText.setText(""); 
      message.setAuthor("Name"); 
      message.setCounter(counter); 
      firebase.child("chat").push().setValue(message); 


     } 
     }); 
    } 
} 
+0

你看看textwatcher,它可以讓你知道什麼時候有人在編輯文本中輸入http://developer.android.com/reference/android/text/TextWatcher.html – JRowan

+0

是啊,我試着看在textwatcher,但nothings happen.maybe其在我的代碼。這些更改將顯示在Firebase上。就像如果你在editText字段上輸入的話,這個值在「firebase」 –

回答

1

您是否在尋找onTextChanged(CharSequence s, int start, int before, int count)

TextWatcher

這種方法引用被調用來通知您,S中,在啓動開始計數的字符剛剛取代了之前有長度舊文本。

這個事件會觸發一個用戶輸入東西到EditText

+0

上真的會變成真的。我試過textwatcher,但沒有發生。 urg生病了。可能問題在於我將火狐基地的textwatcher推送到了這裏。因爲這些更改會顯示在firebase上,所以如果您在editext字段中鍵入,則房間類型下firebase上的用戶值將變爲true –

0

您可以添加textwatcher這樣的:

your_edit_text_name.addTextChangedListener(new TextWatcher() { 
    @Override 
    public void beforeTextChanged(CharSequence s, int start, int count, int after) { 

    } 

    @Override 
    public void onTextChanged(CharSequence s, int start, int before, int count) { 

    } 

    @Override 
    public void afterTextChanged(Editable s) { 

    } 
}); 

和捕獲在onTextChanged方法您鍵入的事件。 希望這可以幫助

相關問題