android把函数参数传递,Android如何传递Activity.class作为函
数的参数
我最近从python转移到Android,我被困在这⾥。alertdialog使用方法
这是我的类声明,⽤于为Alert Dialog创建⼀个接受必要参数的通⽤函数public static AlertDialog.Builder getAlertDialog(String strArray[], String strTitle, Activity v) { return new AlertDialog.Builder(v) .setTitle(strTitle).setItems(strArray, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub } }); }
但我⽆法通过这段代码调⽤此函数,这给了我⼀个错误
getAlertDialog(strArray, strTitle, MakeCall.class).show();
错误是
the method getAlertDialog(String[], String, Activity) in the type MakeCallAlertDialog is not applicable for the arguments (String[], String, Class)
任何⼈都可以告诉我如何正确地得到这个? 先谢谢你。
如果你只想传递对你的Activity使⽤的引⽤: MakeCall.this (或者只是this 。)
像这样打电话:
ButtonClickBySani(R.id.btnsehrabandi, sehrabandiActivity.class);
定义:
private void ButtonClickBySani(int ButtonId, final Class extends Activity> ActivityToOpen) { Button btn; // Locate the button in l btn = (Button) findViewById(ButtonId); // Capture button clicks btn.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { startActivity(new Intent(getBaseContext(), ActivityToOpen)); // Start NewActivity.class //Intent myIntent = new Intent(getBaseContext(), ActivityToOpen); // startActivity(myIntent); } }); }
/ **************************** / SANI HYNE(delickate)
我想你想通过this 。 如果这不起作⽤,请使⽤MakeCall.this 。
getAlertDialog(strArray, strTitle, this).show();
只需像新的YourActivity()⼀样创建⼀个活动对象/实例。
public static void Redirect(Context context,Activity page) { ..... //code context.startActivity(new
Intent(Class())); ((Activity) context).finish(); }
并使⽤此⽅法作为
Redirect(Registration.this, new YourActivity());
你需要这个实例。 使⽤this或SampleActivity.this 。
在Java中,您编写的每个类也将附加⼀个Class类。 Class类将由类加载器等使⽤。
正如其他⼈所说,你应该使⽤MakeCall.this⽽不是MakeCall.class因为MakeCall.this将指向它⾃⼰是⼀个Activity⽽MakeCall.class将指向MakeCall的附加Class类。
这对我有⽤:
private void switchActivity(Class cls){ Intent intent = new Intent(HomeActivity.this, cls); startActivity(intent); }
像这样调⽤函数: switchActivity(DestinationActivity.class)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。