Java 侦听View.OnCLickListener中的OnActivityResult
因此,问题如下: 我正在代码中生成一个Java 侦听View.OnCLickListener中的OnActivityResult,java,android,button,android-intent,Java,Android,Button,Android Intent,因此,问题如下: 我正在代码中生成一个contentView,其中包含多个for和foreach循环,并动态生成按钮的所有侦听器。但是,如果我想在某些TextView或其他内容中进行更改,我会启动一个新的活动,并在侦听器中侦听ononActivityResult。 我想知道这是否可能,我真的需要一些帮助 这是我的密码: Button goliButton = new Button(this); goliButton.setText("+"); goliBu
contentView
,其中包含多个for
和foreach
循环,并动态生成按钮的所有侦听器。但是,如果我想在某些TextView
或其他内容中进行更改,我会启动一个新的活动,并在侦听器中侦听ononActivityResult
。
我想知道这是否可能,我真的需要一些帮助
这是我的密码:
Button goliButton = new Button(this);
goliButton.setText("+");
goliButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(TekmaLive.this,DodajStrel.class);
i.putExtra("MINUTA", currTime /1000 + cetrtina * 15 * 60);
i.putExtra("TEKMA", tekmaId);
i.putExtra("IGRALKA", Integer.parseInt(igralka[0]));
i.putExtra("GOL", true);
TekmaLive.this.startActivity(i);
//Insted of startActivity I would use startActivityForResult...
}
});
我看到您的代码中使用了
startActivity
。如果要返回结果,应使用startActivityForResult
onActivityResult
是属于活动
或片段
的方法。如果从活动调用startActivityForResult
,则当您的子活动调用finish
方法时,将调用该活动实例的相应onActivityResult
在您的案例中,您可以做的是让您的活动实现View.OnClickListener
。这样,您的结果将在侦听器中返回。您不能让“等待”方法等待活动返回其结果,如果这就是您询问的原因,startActivity()是异步的。但是,您可以通过“记住”触发事件的按钮来实现同样的效果,即在活动中有一个变量(pressedButton)引用它
final Button goliButton = new Button(this); // <---
goliButton.setText("+");
goliButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(TekmaLive.this,DodajStrel.class);
i.putExtra("MINUTA", currTime /1000 + cetrtina * 15 * 60);
i.putExtra("TEKMA", tekmaId);
i.putExtra("IGRALKA", Integer.parseInt(igralka[0]));
i.putExtra("GOL", true);
TekmaLive.this.pressedButton = goliButton; // <---
TekmaLive.this.startActivityForResult(i, YOUR_REQUEST_CODE); // <---
}
});
final Button goliButton=新按钮(此);//好的,您稍微忽略了要点,我生成的代码如下所示:(…){//Read from database TextView foo=new TextView(this);…row.addView(foo);}因此我无法直接访问它。是的,准确地说。我用我认为您应该做的更改对它进行了更新。好吧,但是我如何访问vas在for循环中声明的TextView呢?只要让OnClickListener在启动时设置它就行了。该示例对按钮执行此操作,但您可以使用在同一范围内声明的任何其他控件(请确保将其标记为final)。