Hi I am using recycler view in alterbox with an edit text.
In edittext keyboard not showing.
And try this solution:
In the mainfest XML I am add this
android:windowSoftInputMode="stateHidden|adjustPan"
In adapter Class:
editText.requestFocusFromTouch();
In recyclerview i tried this line:
android:descendantFocusability="beforeDescendants"
In above i tried it not working:
My code:
Alter Box:
final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(MainActivity.this);
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view2 = inflater.inflate(R.layout.alter_box, null);
alertDialogBuilder.setView(view2);
String[] subjects =
{
"ANDROID",
"PHP",
"BLOGGER",
"WORDPRESS",
"JOOMLA",
"ASP.NET",
"JAVA",
"C++",
"MATHS",
"HINDI",
"ENGLISH"};
relativeLayout = (RelativeLayout) view2.findViewById(R.id.relativelayout1);
recyclerView = (RecyclerView)view2. findViewById(R.id.recyclerview1);
recylerViewLayoutManager = new LinearLayoutManager(MainActivity.this);
recyclerView.setLayoutManager(recylerViewLayoutManager);
recyclerViewAdapter = new RecyclerViewAdapter(context, subjects);
recyclerView.setAdapter(recyclerViewAdapter);
final AlertDialog dialog2 = alertDialogBuilder.create();
alertDialogBuilder.setCancelable(true);
dialog2.show();
RecyclerViewAdapter:
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder>{
String[] SubjectValues;
Context context;
View view1;
ViewHolder viewHolder1;
TextView textView;
public RecyclerViewAdapter(Context context1,String[] SubjectValues1){
SubjectValues = SubjectValues1;
context = context1;
}
public static class ViewHolder extends RecyclerView.ViewHolder{
public EditText textView;
public ViewHolder(View v){
super(v);
textView = (EditText)v.findViewById(R.id.subject_textview);
}
}
@Override
public RecyclerViewAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType){
view1 = LayoutInflater.from(context).inflate(R.layout.recyclerview_items,parent,false);
viewHolder1 = new ViewHolder(view1);
return viewHolder1;
}
@Override
public void onBindViewHolder(ViewHolder holder, int position){
holder.textView.setText(SubjectValues[position]);
holder. textView.requestFocusFromTouch();
}
@Override
public int getItemCount(){
return SubjectValues.length;
}
}
// Passing dailog on recycleview in alterbox not working for me.
ALTERDIALOG final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(MainActivity.this);
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view2 = inflater.inflate(R.layout.alter_box, null);
AlertDialog dialog = alertDialogBuilder.create();
alertDialogBuilder.setView(view2);
String[] subjects =
{
"ANDROID",
"PHP",
"BLOGGER",
"WORDPRESS",
"JOOMLA",
"ASP.NET",
"JAVA",
"C++",
"MATHS",
"HINDI",
"ENGLISH"};
relativeLayout = (RelativeLayout) view2.findViewById(R.id.relativelayout1);
recyclerView = (RecyclerView)view2. findViewById(R.id.recyclerview1);
recylerViewLayoutManager = new LinearLayoutManager(MainActivity.this);
recyclerView.setLayoutManager(recylerViewLayoutManager);
recyclerViewAdapter = new RecyclerViewAdapter(context, subjects,dialog);
recyclerView.setAdapter(recyclerViewAdapter);
final AlertDialog dialog2 = alertDialogBuilder.create();
alertDialogBuilder.setCancelable(true);
dialog2.show();
cONSTROUCTOR
TextView textView; Dialog dialogs;
public RecyclerViewAdapter(Context context1, String[] SubjectValues1, Dialog dialog){
SubjectValues = SubjectValues1;
context = context1;
dialogs=dialog;
} OnBindViewHolder
holder.textView.setText(SubjectValues[position]);
holder.textView.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
dialogs.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
dialogs.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
}
}
});
}