package
com.example.custom_searchable_spinner;
import
androidx.appcompat.app.AppCompatActivity;
import
android.app.Dialog;
import
android.graphics.Color;
import
android.graphics.drawable.ColorDrawable;
import
android.os.Bundle;
import
android.text.Editable;
import
android.text.TextWatcher;
import
android.view.View;
import
android.widget.AdapterView;
import
android.widget.ArrayAdapter;
import
android.widget.EditText;
import
android.widget.ListView;
import
android.widget.TextView;
import
java.util.ArrayList;
public
class
MainActivity
extends
AppCompatActivity {
TextView textview;
ArrayList<String> arrayList;
Dialog dialog;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textview=findViewById(R.id.testView);
arrayList=
new
ArrayList<>();
arrayList.add(
"DSA Self Paced"
);
arrayList.add(
"Complete Interview Prep"
);
arrayList.add(
"Amazon SDE Test Series"
);
arrayList.add(
"Compiler Design"
);
arrayList.add(
"Git & Github"
);
arrayList.add(
"Python foundation"
);
arrayList.add(
"Operating systems"
);
arrayList.add(
"Theory of Computation"
);
textview.setOnClickListener(
new
View.OnClickListener() {
@Override
public
void
onClick(View v) {
dialog=
new
Dialog(MainActivity.
this
);
dialog.setContentView(R.layout.dialog_searchable_spinner);
dialog.getWindow().setLayout(
650
,
800
);
dialog.getWindow().setBackgroundDrawable(
new
ColorDrawable(Color.TRANSPARENT));
dialog.show();
EditText editText=dialog.findViewById(R.id.edit_text);
ListView listView=dialog.findViewById(R.id.list_view);
ArrayAdapter<String> adapter=
new
ArrayAdapter<>(MainActivity.
this
, android.R.layout.simple_list_item_1,arrayList);
listView.setAdapter(adapter);
editText.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) {
adapter.getFilter().filter(s);
}
@Override
public
void
afterTextChanged(Editable s) {
}
});
listView.setOnItemClickListener(
new
AdapterView.OnItemClickListener() {
@Override
public
void
onItemClick(AdapterView<?> parent, View view,
int
position,
long
id) {
textview.setText(adapter.getItem(position));
dialog.dismiss();
}
});
}
});
}
}