2017-10-02 4 views
2

so habe ich diesen CodeAndroid Kotlin Taste + Alarm-Dialog + Liste

var firstKitList = mutableListOf<String>("test", "potato", "another item") 

override fun onCreate(savedInstanceState: Bundle?) { 
    super.onCreate(savedInstanceState) 
    setContentView(R.layout.activity_kit_list) 

    val mainKitList = kitListView 
    val mainListViewAdapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, firstKitList) 
    mainKitList.adapter = mainListViewAdapter 



    newKitListBtn.setOnClickListener { 

     // Handler code here. 
     val intent = Intent(this, NewKitListActivity::class.java) 
     startActivity(intent); 
    } 





} 

Für diese layout. Wie gehe ich herum, wenn ich auf die Schaltfläche klicke, um einen Warndialog für mich anzuzeigen, um einen Namen hinzuzufügen (als ob ich ein Element erstellen würde, das zu dieser Liste hinzugefügt werden soll) und dann zur nächsten Aktivität übergehe? (Dieser Teil erstellt wird bereits, wie Sie auf dem Code sehen)

Vielen Dank

+1

Neues ' AlertDialog' im 'OnClickListener' und beim Beenden der Aktivität? – creativecreatorormaybenot

Antwort

3

I Funktion erstellt, die mit editText Alarm Dialog halten. Wenn Sie auf den Speichernamen klicken, wird dieser in mulableList gespeichert und zu neuen Aktivitäten umgeleitet.

Modified-Code

var firstKitList = mutableListOf<String>("test", "potato", "another item") 
// Mutable List for holding names 
val nameList = mutableListOf<String>() 

override fun onCreate(savedInstanceState: Bundle?) { 
    super.onCreate(savedInstanceState) 
    setContentView(R.layout.activity_kit_list) 

    val mainKitList = kitListView 
    val mainListViewAdapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, firstKitList) 
    mainKitList.adapter = mainListViewAdapter 



    newKitListBtn.setOnClickListener { 

     // Show Alert Dialog 
     showNewNameDialog() 


    } 
} 

Benachrichtigungsdialogfunktion

fun showNewNameDialog() { 
     val dialogBuilder = AlertDialog.Builder(this) 
     val inflater = this.layoutInflater 
     val dialogView = inflater.inflate(R.layout.custom_dialog, null) 
     dialogBuilder.setView(dialogView) 

     val editText = dialogView.findViewById<View>(R.id.editTextName) as EditText 

     dialogBuilder.setTitle("Custom dialog") 
     dialogBuilder.setMessage("Enter Name Below") 
     dialogBuilder.setPositiveButton("Save", DialogInterface.OnClickListener { dialog, whichButton -> 
      //do something with edt.getText().toString(); 

      // Add Name in list 
      nameList.add(editText.text.toString()) 
      // Handler code here. 
     val intent = Intent(this, NewKitListActivity::class.java) 
     startActivity(intent); 

     }) 
     dialogBuilder.setNegativeButton("Cancel", DialogInterface.OnClickListener { dialog, whichButton -> 
      //pass 
     }) 
     val b = dialogBuilder.create() 
     b.show() 
    } 

Dialogfeld-Layout: custom_dialog.xml

<?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:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:padding="10dp" 
    android:orientation="vertical"> 

    <EditText 
     android:id="@+id/editTextName" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:inputType="text" /> 

</LinearLayout>