我尝试将context活动传递到适配器然后我尝试context.finish();但它给我一个错误就像The method finish() is undefined for the type Context
也许我在这里错过了,但在这里.让我说扩展Button
public class MyButton extends Button {
...
public MyButton(Context context, AttributeSet attrs) {
super(context, attrs);
...
}
}
Run Code Online (Sandbox Code Playgroud)
那么如何在第二种情况下获得对话或活动的实例?
编辑 更多代码以更好地说明我想要做的事情:
public class MyDialog extends Dialog {
private MyButton myButton;
public MyDialog(Context context) {
super(context)
this.setContentView(R.layout.my_dialog);
this.setTitle("My Dialog");
myButton = (MyButton) findViewById(R.id.my_button);
}
}
public class MyButton extends Button implements Command {
private MyActivity myActivity;
public MyButton(Context context, AttributeSet attrs) {
super(context, attrs);
System.out.println(context instanceof ContextThemeWrapper); // TRUE
System.out.println(context instanceof Activity); // FALSE
myActivity = ??? // …Run Code Online (Sandbox Code Playgroud) 我正在尝试Recyclerview使用代码单击项目时完成适配器类的活动
public void onBindViewHolder(@NonNull CountryCodeAdapter.CountryViewHolder holder, int position{
CountryModel countryMode = countryModels.get(position);
final String cCode = countryModel.getName();
holder.llcountryCode.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(v.getContext(),RegisterActivity.class);
i.putExtra("countryCode", cCode);
v.getContext().startActivity(i);
((AppCompatActivity)context).finish();
}
}
}
Run Code Online (Sandbox Code Playgroud)
也尝试过这个但是没用
((Activity)context).finish();
Run Code Online (Sandbox Code Playgroud)
我得到这个错误:
cannot be cast to android.support.v7.app.AppCompatActivity
Run Code Online (Sandbox Code Playgroud)