1-) Android RMOS - SearchableSpinner aranabilir combobox
kaynak : https://github.com/MdFarhanRaja/SearchableSpinner
Step 1. Add the JitPack repository to your build file
allprojects {
repositories {
maven { url 'https://jitpack.io' }
}
}
Step 2. Add the dependency
dependencies {
compile 'com.github.MdFarhanRaja:SearchableSpinner:2.0'
}
Step 3. Inside JAVA
public class MainActivity extends AppCompatActivity {
ArrayList<String> items=new ArrayList<>();
SpinnerDialog spinnerDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView selectedItems=(TextView)findViewById(R.id.txt);
items.add("Mumbai");
items.add("Delhi");
items.add("Bengaluru");
items.add("Hyderabad");
items.add("Ahmedabad");
items.add("Chennai");
items.add("Kolkata");
items.add("Surat");
items.add("Pune");
items.add("Jaipur");
items.add("Lucknow");
items.add("Kanpur");
spinnerDialog=new SpinnerDialog(MainActivity.this,items,"Select or Search City","Close Button Text");// With No Animation
spinnerDialog=new SpinnerDialog(MainActivity.this,items,"Select or Search City",R.style.DialogAnimations_SmileWindow,"Close Button Text");// With Animation
spinnerDialog.setCancellable(true); // for cancellable
spinnerDialog.setShowKeyboard(false);// for open keyboard by default
spinnerDialog.setUseContainsFilter(true); // ben yazdım
spinnerDialog.bindOnSpinerListener(new OnSpinerItemClick() {
@Override
public void onClick(String item, int position) {
Toast.makeText(MainActivity.this, item + " " + position+"", Toast.LENGTH_SHORT).show();
selectedItems.setText(item + " Position: " + position);
}
});
findViewById(R.id.show).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
spinnerDialog.showSpinerDialog();
}
});
}
}
Step 4. Add custom style in your styles.xml
<style name="DialogAnimations" />
<style name="DialogAnimations.SmileWindow">
<item name="android:windowEnterAnimation">@anim/slide_in_bottom</item>
<item name="android:windowExitAnimation">@anim/slide_out_top</item>
</style>
Step 5. -> ben yazdım
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:orientation="vertical"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="in.galaxyofandroid.searchablespinner.MainActivity">
<Button
android:layout_gravity="center"
android:id="@+id/show"
android:text="Show Dialog"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/txt"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
------------------------------------------KENDİ NOTLARIM--------------------------------
eğer projene komple entegre edersen yani .jar ın içindekileri kendine alırsan ve içinde yani contains şeklinde arama yaparsan aşağıdakileri uygula. Listenin kopyasını al ve aldığın kopyayı geri yolla. aşağıdaki gibi
ArrayList<String> items = new ArrayList<>();
ArrayList<String> itemsCopy = new ArrayList<>();
public void cariEkle() {
items.clear();
items.add("Metro");
items.add("Delhi");
items.add("Bengaluru");
items.add("Hyderabad");
items.add("Ahmedabad");
items.add("Chennai");
items.add("Kolkata");
items.add("Surat");
items.add("Pune");
items.add("Jaipur");
items.add("Lucknow");
items.add("Kanpur");
itemsCopy = new ArrayList<>(items);
}
btnCari.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
spinnerDialog.showSpinerDialog(itemsCopy);
}
});
public void showSpinerDialog(ArrayList<String> itemsT) {
items=new ArrayList<>(itemsT);
AlertDialog.Builder adb = new AlertDialog.Builder(context);
...
...