Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何将值从一个方法传递到另一个方法_Android - Fatal编程技术网

Android 如何将值从一个方法传递到另一个方法

Android 如何将值从一个方法传递到另一个方法,android,Android,//单击“计算”按钮时,calculateButton将运行 //pus.setText(pushupScore); pus.setText(String.valueOf(calculatePushups())); Button dialogButton = (Button) dialog.findViewById(R.id.

//单击“计算”按钮时,calculateButton将运行

                            //pus.setText(pushupScore);

                            pus.setText(String.valueOf(calculatePushups()));

                            Button dialogButton = (Button) dialog.findViewById(R.id.dialog_ok);
                            // if button is clicked, close the custom dialog
                            dialogButton.setOnClickListener(new OnClickListener() {
                                @Override
                                public void onClick(View v) {
                                    dialog.dismiss();
                                }
                            });

                            dialog.show();
                          }
                        });
                }
            }
下面是我的对话框XML代码:

                            //pus.setText(pushupScore);

                            pus.setText(String.valueOf(calculatePushups()));

                            Button dialogButton = (Button) dialog.findViewById(R.id.dialog_ok);
                            // if button is clicked, close the custom dialog
                            dialogButton.setOnClickListener(new OnClickListener() {
                                @Override
                                public void onClick(View v) {
                                    dialog.dismiss();
                                }
                            });

                            dialog.show();
                          }
                        });
                }
            }

您将在calculatePushups中返回pushupScore,因此只需编写:

                            //pus.setText(pushupScore);

                            pus.setText(String.valueOf(calculatePushups()));

                            Button dialogButton = (Button) dialog.findViewById(R.id.dialog_ok);
                            // if button is clicked, close the custom dialog
                            dialogButton.setOnClickListener(new OnClickListener() {
                                @Override
                                public void onClick(View v) {
                                    dialog.dismiss();
                                }
                            });

                            dialog.show();
                          }
                        });
                }
            }
                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" >

                    <TextView
                        android:id="@+id/textView1"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:lineSpacingExtra="5dp"
                        android:text="Push-ups: "
                        android:textAppearance="?android:attr/textAppearanceMedium" />

                    <TextView
                        android:id="@+id/pushup_score"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_weight="4.97"
                        android:textAppearance="?android:attr/textAppearanceMedium" />
                </LinearLayout>

                <TextView
                    android:id="@+id/textView2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:lineSpacingExtra="5dp"
                    android:text="Sit-ups: "
                    android:textAppearance="?android:attr/textAppearanceMedium" />

                <TextView
                    android:id="@+id/textView3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:lineSpacingExtra="5dp"
                    android:text="2.4km Run: "
                    android:textAppearance="?android:attr/textAppearanceMedium" />

                <TextView
                    android:id="@+id/textView4"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:lineSpacingExtra="5dp"
                    android:text="Award: "
                    android:textAppearance="?android:attr/textAppearanceLarge" />

                <Button
                    android:id="@+id/dialog_ok"
                    style="@style/AppTheme"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_horizontal"
                    android:lineSpacingExtra="5dp"
                    android:text="Ok" />

            </LinearLayout>
顺便说一句,这不是android机制,这是简单的java返回用法:

您遗漏了很多代码,因此我不确定您的问题出在哪里,但您是否可以按照这些步骤进行操作,并告诉我是否有任何错误等?无论如何,以下是您需要的:

                            //pus.setText(pushupScore);

                            pus.setText(String.valueOf(calculatePushups()));

                            Button dialogButton = (Button) dialog.findViewById(R.id.dialog_ok);
                            // if button is clicked, close the custom dialog
                            dialogButton.setOnClickListener(new OnClickListener() {
                                @Override
                                public void onClick(View v) {
                                    dialog.dismiss();
                                }
                            });

                            dialog.show();
                          }
                        });
                }
            }
确保您的活动实现OnClickListener:

                            //pus.setText(pushupScore);

                            pus.setText(String.valueOf(calculatePushups()));

                            Button dialogButton = (Button) dialog.findViewById(R.id.dialog_ok);
                            // if button is clicked, close the custom dialog
                            dialogButton.setOnClickListener(new OnClickListener() {
                                @Override
                                public void onClick(View v) {
                                    dialog.dismiss();
                                }
                            });

                            dialog.show();
                          }
                        });
                }
            }
pus.setText(String.valueOf(calculatePushups()));
在活动的重写onCreate()方法中,将活动注册为处理程序:

                            //pus.setText(pushupScore);

                            pus.setText(String.valueOf(calculatePushups()));

                            Button dialogButton = (Button) dialog.findViewById(R.id.dialog_ok);
                            // if button is clicked, close the custom dialog
                            dialogButton.setOnClickListener(new OnClickListener() {
                                @Override
                                public void onClick(View v) {
                                    dialog.dismiss();
                                }
                            });

                            dialog.show();
                          }
                        });
                }
            }
public class MainActivity extends Activity implements OnClickListener, OnValueChangeListener {
    //...
}
MainActivity
中,处理程序如下所示:

                            //pus.setText(pushupScore);

                            pus.setText(String.valueOf(calculatePushups()));

                            Button dialogButton = (Button) dialog.findViewById(R.id.dialog_ok);
                            // if button is clicked, close the custom dialog
                            dialogButton.setOnClickListener(new OnClickListener() {
                                @Override
                                public void onClick(View v) {
                                    dialog.dismiss();
                                }
                            });

                            dialog.show();
                          }
                        });
                }
            }
calculate = (Button)v.findViewById(R.id.dialog_ok);
calculate.setOnClickListener(this);
也许您应该将
编辑文本
更改为
文本视图
编辑文本
不是必需的,可能会导致问题

                            //pus.setText(pushupScore);

                            pus.setText(String.valueOf(calculatePushups()));

                            Button dialogButton = (Button) dialog.findViewById(R.id.dialog_ok);
                            // if button is clicked, close the custom dialog
                            dialogButton.setOnClickListener(new OnClickListener() {
                                @Override
                                public void onClick(View v) {
                                    dialog.dismiss();
                                }
                            });

                            dialog.show();
                          }
                        });
                }
            }

这就是你想要的吗?

我无法理解你想要什么。我尝试了你的代码,但当点击“计算”按钮时,应用程序崩溃。我已经分配了空的方法在点击按钮时运行,这就是它崩溃的原因吗?你能发布堆栈跟踪或至少你的“新”代码吗?发布了我的新代码。。基本上增加了你的台词。当该行被注释掉时,应用程序工作正常。因此calculatePushUps()中有一个错误。Try:int-ageGroup=np.getValue();好了,现在可以了,我得到了根据年龄组和输入值计算的分数。现在的问题是分数显示在我的线性布局中,而不是对话框中。如何正确更改“findViewById”?
                            //pus.setText(pushupScore);

                            pus.setText(String.valueOf(calculatePushups()));

                            Button dialogButton = (Button) dialog.findViewById(R.id.dialog_ok);
                            // if button is clicked, close the custom dialog
                            dialogButton.setOnClickListener(new OnClickListener() {
                                @Override
                                public void onClick(View v) {
                                    dialog.dismiss();
                                }
                            });

                            dialog.show();
                          }
                        });
                }
            }