2016-05-20 6 views
0

Я разрабатываю приложение для Android. Активность имеет tabhost с 5 вкладками. На второй вкладке есть виджет edittext. Когда я нажимаю, я хочу, чтобы клавиатура отображалась. Как получить фокус на виджете edittext из tabhost? enter image description hereКак открыть клавиатуру Android в табусте на клике edititext?

Вот мой Java-код:

public class activities extends AppCompatActivity { 

public static final int CAPTURE_IMAGE = 2; 
ImageView imageView; 
Button btnCapturePicture; 
File file; 
static int count=0; 
String imgPath,selectedImagePath; 
EditText editText; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activities); 
    editText=(EditText)findViewById(R.id.editText8); 

    TabHost th=(TabHost)findViewById(R.id.tabHost); 
    th.setup(); 
    TabHost.TabSpec specs=th.newTabSpec("Tag1"); 
    specs.setContent(R.id.camera); 
    specs.setIndicator("",getResources().getDrawable(R.drawable.camera)); 
    th.addTab(specs); 

    specs=th.newTabSpec("Tag2"); 
    specs.setContent(R.id.chat); 
    specs.setIndicator("",getResources().getDrawable(R.drawable.chat15)); 
    th.addTab(specs); 

    specs=th.newTabSpec("Tag3"); 
    specs.setContent(R.id.profile); 
    specs.setIndicator("",getResources().getDrawable(R.drawable.user_blue)); 
    th.addTab(specs); 

    specs=th.newTabSpec("Tag4"); 
    specs.setContent(R.id.history); 
    specs.setIndicator("",getResources().getDrawable(R.drawable.history2)); 
    th.addTab(specs); 

    specs=th.newTabSpec("Tag5"); 
    specs.setContent(R.id.settings); 
    specs.setIndicator("",getResources().getDrawable(R.drawable.settings5)); 
    th.addTab(specs); 
    imageView = (ImageView)findViewById(R.id.imageview6); 
    btnCapturePicture=(Button)findViewById(R.id.btnCapturePicture); 
    btnCapturePicture.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      final Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
      intent.putExtra(MediaStore.EXTRA_OUTPUT, setImageUri()); 
      startActivityForResult(intent, CAPTURE_IMAGE); 
     } 
    }); 
} 

ответ

0

Я использую:

InputMethodManager inputMethodManager=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
    inputMethodManager.toggleSoftInputFromWindow(linearLayout.getApplicationWindowToken(), InputMethodManager.SHOW_FORCED, 0); 

Попробуйте использовать этот код.

Если вы хотите закрыть клавиатуру:

InputMethodManager imm = (InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE); 
     imm.hideSoftInputFromWindow(view.getWindowToken(), 0); 
0

использовать этот метод, чтобы показать клавиатуру по щелчку

public static void openKeyBoard(View textView) { 
     try { 
      InputMethodManager imm = (InputMethodManager) Env.currentActivity.getSystemService(Context.INPUT_METHOD_SERVICE); 
      imm.showSoftInput(textView, InputMethodManager.SHOW_IMPLICIT); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
0

Сначала вам нужно получить onClick из Tab 2 И onClick вы можете открыть KeyBoard.

getTabWidget().getChildAt(1).setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      Log.d(TAG,"1"+getTabHost().getCurrentTabTag()); 

      editText.requestFocus(); 
      getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE); 
     } 
    }); 
+0

Я получаю сообщение об ошибке. не может разрешить метод gettabhost(), если класс действия расширяет appcompatactivity. но если tabactivity расширен, gettabhost() не показывает ошибки. но R.id.tabhost показывает сообщение об ошибке. –

Смежные вопросы