I have implemented three tabs using ViewPager. In the right tab layout i have one edit text widget, when users click on it keyboard comes up. If the user don’t close the keyboard manually and swipe to the middle or left tab the keyboard remains on screen. So how to avoid the keyboard in other two tabs where i don’t need it.
Edit: Here’s my code.
class ViewPagerActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
MyPagerAdapter adapter = new MyPagerAdapter();
ViewPager myPager = (ViewPager) findViewById(R.id.myfivepanelpager);
myPager.setAdapter(adapter);
myPager.setCurrentItem(1);
TitlePageIndicator titleIndicator = (TitlePageIndicator) findViewById(R.id.titles);
titleIndicator.setViewPager(myPager);
} }
Second File: MyPagerAdapter.java
class MyPagerAdapter extends PagerAdapter implements OnClickListener,
OnLongClickListener, AdapterView.OnItemSelectedListener {
public Object instantiateItem(View collection, int position) {
LayoutInflater inflater = (LayoutInflater) collection.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
int resId = 0;
View view;
switch (position) {
case 0:
resId = R.layout.left;
view = inflater.inflate(resId, null);
break;
case 1:
resId = R.layout.main_c;
view = inflater.inflate(resId, null);
btn_no1 = (Button) view.findViewById(R.id.one);
btn_no1.setOnClickListener(this);
((ViewPager) collection).addView(view, 0);
return view;
case 2:
resId = R.layout.right;
view = inflater.inflate(resId, null);
main_spinner = (Spinner) view.findViewById(R.id.spinner1);
main_spinner.setOnItemSelectedListener(this);
from_spinner = (Spinner) view.findViewById(R.id.spinner2);
from_spinner.setOnItemSelectedListener(this);
to_spinner = (Spinner) view.findViewById(R.id.spinner3);
to_spinner.setOnItemSelectedListener(this);
swap = (ImageButton) view.findViewById(R.id.swap_spinner);
swap.setOnClickListener(this);
((ViewPager) collection).addView(view, 0);
return view;
}
view = inflater.inflate(resId, null);
((ViewPager) collection).addView(view, 0);
return view;
}
And TitlePageIndicator looks like this: TitlePageIndicator
In my opinion this is not a serious problem. The user opens the keyboard for text input and will hide it when it’s no longer needed.
Having a reference to your EditText object, this should hide the keyboard:
Call the snippet above when leaving the right tab.