Java 从类中调用活动中的函数
我制作了一个类(回形针),可以在屏幕上显示一个自定义对话框。在我的活动中,我创建了一个回形针实例,并使对话框显示在活动上方。我想要的是,当按下某个按钮时,会执行活动中的某些代码。我希望此代码从活动中执行,因为我希望有一个对话框,可以在项目中的许多不同活动中重用 我正在考虑在课堂上制作一个变量,并在活动中为其添加一个侦听器。这是一个好方法,还是有一个更简单的解决方案Java 从类中调用活动中的函数,java,android,Java,Android,我制作了一个类(回形针),可以在屏幕上显示一个自定义对话框。在我的活动中,我创建了一个回形针实例,并使对话框显示在活动上方。我想要的是,当按下某个按钮时,会执行活动中的某些代码。我希望此代码从活动中执行,因为我希望有一个对话框,可以在项目中的许多不同活动中重用 我正在考虑在课堂上制作一个变量,并在活动中为其添加一个侦听器。这是一个好方法,还是有一个更简单的解决方案 public class Paperclip { int i = 0; Dialog myDialog; T
public class Paperclip {
int i = 0;
Dialog myDialog;
TextView t;
int mid;
Context context2;
public Paperclip(Context context) {
super();
context2 = context;
}
public void Showit(final String[] Messages) {
final int lengte = Messages.length;
myDialog = new Dialog(context2, R.style.CustomDialogTheme);
myDialog.setContentView(R.layout.messagebox);
t = (TextView) myDialog.findViewById(R.id.message);
if (lengte != 0) {
if (i < lengte) {
t.setText(Messages[i]);
i++;
}
Button iets = (Button) myDialog.findViewById(R.id.mbja);
iets.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (i < lengte) {
t.setText(Messages[i]);
i++;
} else{
t.setText("Ik hoop dat deze informatie nuttig was. Klik op Ja om alles opnieuw te horen.");
i = 0;
}
}
});
}
Button iets2 = (Button) myDialog.findViewById(R.id.button2);
iets2.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
myDialog.dismiss();
}
});
Button iets3 = (Button) myDialog.findViewById(R.id.button3);
iets2.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//TODO: execute code from activity here.
}
});
myDialog.show();
}
}
公共类回形针{
int i=0;
对话我的对话;
文本视图t;
int mid;
语境2;
公共回形针(上下文){
超级();
context2=上下文;
}
public void Showit(最终字符串[]消息){
最终整数长度=Messages.length;
myDialog=新建对话框(context2,R.style.CustomDialogTheme);
myDialog.setContentView(R.layout.messagebox);
t=(TextView)myDialog.findViewById(R.id.message);
如果(长度!=0){
如果(i
谢谢 在
按钮上设置onClick监听器
,并在onClick()
事件中调用您的方法
public class MyActivity extends Activity {
Button myButton;
String[] mMessages = new String[]{"Message 1", "Message 2", "Message 3"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myButton = (Button) findViewById(R.id.myButton);
myButton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
Paperclip p = new Paperclip(MyActivity.this);
p.showit(mMessages);
}
});
}
}
编辑:更正打字错误和更新代码
编辑#2:基于更新的问题和代码片段更新的代码您必须在活动中创建对话框按钮的实例,并向其添加侦听器事件,然后在此侦听器中发布您的代码您可以尝试在侦听器之外使用广播,在活动中实现广播并从类发送它
这很好请添加代码片段。如果您不想使对话框成为组件(在其他项目中可重用),我只需向其传递对活动实例的引用,并直接调用该方法。您应该了解一些有关按钮的信息,该按钮位于类内的对话框中。编辑:误解了评论。不管怎么说,最好阅读一下(对话)[和对话片段,正如书中建议的那样。