0
我試圖創建一個可重用的UI類。我承認我不明白它應該如何工作。我想要一個我將參數傳入的類,當用戶做出選擇時,它將返回選定的值。這實際上是一個更復雜的自定義對話框,將被使用。爲了測試,我將來自我發現的例子的以下代碼放在一起,它將所有內容都返回給選定的值。android將變量從類傳回
那麼,如何在主程序中返回用戶選定值?
主模塊 package com.mine.zd;
import android.app.Activity;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
public class ZDialogActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btn1 = (Button) findViewById(R.id.btn1);
btn1.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View arg0){
go();
}
});
}
private void go()
{
final String[] vOptions = { "One", "Two", "Three" } ;
myOptions.getmenuOptions(
ZDialogActivity.this, "Select Mode", vOptions,
new android.content.DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
Log.w("TEST", "which=" + which);
}
}
);
}
}
稱爲模塊
package com.mine.zd;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.util.Log;
public class myOptions {
public static void getmenuOptions(Context context, String msg,
String[] vOptions, OnClickListener neutralClickListener){
new AlertDialog.Builder(context)
.setTitle("Select Mode")
.setItems(vOptions, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
Log.w("TEST", "item=" + whichButton);
dialog.dismiss();
}
})
.setNeutralButton("Cancel", neutralClickListener)
.create().show();
}
}
我得到返回的「取消」按鈕-3價值,但我需要選擇的選項的ID。
而不是在'myOptions.getMenuOptions(...)'方法中調用'setItems(...)'時創建一個匿名'OnClickListener',爲什麼不嘗試將'neutralClickListener'傳遞到'setItems(..) 。)'而不是? – Squonk