首页 > 解决方案 > 将字符串从 onClickListener insde onCreate 传递到外部 onCreate

问题描述

对不起,但我有一些直到现在我不明白,我在一个小应用程序中工作,我需要StringsetOnClickListener内部传递一个onCreate然后在同一个活动中将此变量传递到外部onCreate,字符串是finalDeRec1 ....请找到编码


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_rectangular_duct);
//Balance code

 mbutton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                double airFlowCal = Double.parseDouble(airFlow.getText().toString());
                double widthRec = Double.parseDouble(recWidthMm.getText().toString());
                double HeightRec = Double.parseDouble(recHeightMm.getText().toString());
                double finalDe = calculateDe(widthRec, HeightRec);
                String finalDeRec1 = String.valueOf((String.format("%.2f",finalDe)));
//Balance code


        });

    }
//outside onCreate 
private void createPDF() {
        printRec.setOnClickListener(new View.OnClickListener()  {
            @RequiresApi(api = Build.VERSION_CODES.KITKAT)
            @Override
            public void onClick(View v) {
                PdfDocument myPdfDocument = new PdfDocument();
//Balance Code
   });
    }
}

请指教

标签: android

解决方案


为什么不在 oncreate 方法之外创建一个全局变量并将值放入其中。

String value = "";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_rectangular_duct);

    mbutton.setOnClickListener(new View.OnClickListener() {
                                   @Override
                                   public void onClick(View v) {
                                       double airFlowCal = Double.parseDouble(airFlow.getText().toString());
                                       double widthRec = Double.parseDouble(recWidthMm.getText().toString());
                                       double HeightRec = Double.parseDouble(recHeightMm.getText().toString());
                                       double finalDe = calculateDe(widthRec, HeightRec);
                                       String finalDeRec1 = String.valueOf((String.format("%.2f",finalDe)));
                                       value = finalDeRec1;

                                   });

                               }
    private void createPDF() {
        printRec.setOnClickListener(new View.OnClickListener()  {
            @RequiresApi(api = Build.VERSION_CODES.KITKAT)
            @Override
            public void onClick(View v) {
                PdfDocument myPdfDocument = new PdfDocument();

                String yourStringIsHere = value;
            });
        }
    }

只需在 onCreate 方法之外添加一个字符串,然后在 oncCickListener 中分配它。然后在 onCreate 方法之外使用它。


推荐阅读