Ответ 1
Если вы просто хотите передать ссылку на свою деятельность: MakeCall.this
(или, может быть, просто this
.)
Недавно я перешел на Android с python и застрял здесь.
Это мое объявление класса для создания общей функции для диалогового окна оповещений, которое принимает необходимые параметры
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<TestActivity>)
Может ли кто-нибудь сказать мне, как правильно это сделать? Заранее благодарю вас.
Если вы просто хотите передать ссылку на свою деятельность: 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 activity_main.xml
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();
Вам нужен экземпляр. Используйте this
или SampleActivity.this
.
Просто создайте объект/экземпляр активности, например new YourActivity().
public static void Redirect(Context context,Activity page) {
..... //code
context.startActivity(new Intent(context,page.getClass()));
((Activity) context).finish();
}
и используйте этот метод как
Redirect(Registration.this, new YourActivity());
В Java каждый класс, который вы пишете, также будет иметь класс Class
, прикрепленный к нему. Класс Class
будет использоваться загрузчиком классов и т.д.
Как говорили другие, вы должны использовать MakeCall.this
вместо MakeCall.class
, потому что MakeCall.this
укажет на себя, который является активностью, пока MakeCall.class
укажет на прикрепленный класс MakeCall Class
.