2014-09-10 64 views
3

我對Eclipse很新,我必須通過在軟鍵盤中按下完成按鈕後清除editText中的焦點來隱藏光標。Eclipse editText按完成後刪除焦點(光標)

我發現,別人的代碼工作:

editText.setOnEditorActionListener(new OnEditorActionListener() {   
@Override 
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
    if(actionId==EditorInfo.IME_ACTION_DONE){ 
     //Clear focus here from edittext 
     editText.clearFocus(); 
    } 
return false; 
} 
}); 

活動

package com.iprogettisti.cppp; 

import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.support.v7.app.ActionBarActivity; 
import android.view.KeyEvent; 
import android.view.LayoutInflater; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.ViewGroup; 
import android.view.inputmethod.EditorInfo; 
import android.widget.EditText; 
import android.widget.TextView; 
import android.widget.TextView.OnEditorActionListener; 

public class VisualizzaPagina extends ActionBarActivity { 

EditText edittext = (EditText) findViewById(R.id.editText1); 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    if (MainActivity.TipoPagina == 1) { 
     setContentView(R.layout.fragment_visualizza_pagina);    
    } 
    else if (MainActivity.TipoPagina == 2) { 
     setContentView(R.layout.fragment_visualizza_pagina2);   
    } 
    else if (MainActivity.TipoPagina == 3) { 
     setContentView(R.layout.fragment_visualizza_pagina3);   
    } 
    else if (MainActivity.TipoPagina == 4) { 
     setContentView(R.layout.fragment_visualizza_pagina4);   
    } 
    else if (MainActivity.TipoPagina == 5) { 
     setContentView(R.layout.fragment_visualizza_pagina5);   
    } 

    edittext.setOnEditorActionListener(new OnEditorActionListener() {   
    @Override 
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
     if(actionId==EditorInfo.IME_ACTION_DONE){ 
      //Clear focus here from edittext 
      edittext.setCursorVisible(false); 
     } 
    return false; 
    } 
    }); 

} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.visualizza_pagina, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 
    if (id == R.id.action_settings) { 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 


/** 
* A placeholder fragment containing a simple view. 
*/ 
public static class PlaceholderFragment extends Fragment { 

    public PlaceholderFragment() { 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     View rootView = inflater.inflate(
       R.layout.fragment_visualizza_pagina, container, false); 
     return rootView; 
    } 
} 
} 

的代碼,但我不能弄清楚如何讓這項工作。 我應該在哪裏放置該代碼?並且在第一行「editText」給我一個錯誤,因爲沒有重新調整,我試着給我編輯文本的唯一ID,但它沒有奏效。

+0

發佈您的代碼 - 活動 – deniz 2014-09-10 11:07:51

+1

哥們,你需要學習java第一EDITTEXT是你需要初始化首先使用的EditText EDITTEXT =(EditText上)findViewById的EditText類的全球化志願服務青年( R.id.myedittext);你也需要導入EditText類。 – 2014-09-10 11:13:15

回答

4

試試這個

EditText edittext = (EditText) findViewById(R.id.edittext1<your unique ID>); 


    edittext.setOnEditorActionListener(new OnEditorActionListener() {   
     @Override 
     public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
      if(actionId==EditorInfo.IME_ACTION_DONE){ 
       //Clear focus here from edittext 
       edittext.setCursorVisible(false); 
      } 
      return false; 
     } 
    }); 

    edittext.setOnTouchListener(new OnTouchListener() { 
      @Override 
      public boolean onTouch(View arg0, MotionEvent arg1) { 
       edittext.setCursorVisible(true); 
       return false; 
      } 
    }); 
+1

感謝這項工作,但現在如果我再次編輯文本沒有光標將顯示,beacouse obviusly我必須setCursorVisible爲true,我怎麼能在edittext字段上捕獲onClick事件? – Achille911 2014-09-11 10:36:36

+1

請找到我的更新,並讓我知道這是否如你所需。 – Saraschandraa 2014-09-11 12:44:32

+0

完美運作,非常感謝! – Achille911 2014-09-11 16:23:09

1

您需要內(或之後)找到ID您的視圖中的onCreate()。

移動EditText edittext = (EditText) findViewById(R.id.editText1);裏面你onCreate()super.onCreate()