Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.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
Java 碎片内的按钮赢得';即使没有错误也不能工作_Java_Android_Button_Onclick_Fragment - Fatal编程技术网

Java 碎片内的按钮赢得';即使没有错误也不能工作

Java 碎片内的按钮赢得';即使没有错误也不能工作,java,android,button,onclick,fragment,Java,Android,Button,Onclick,Fragment,我在碎片里的按钮坏了。没有错误,我也不知道它出了什么问题 import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.Array

我在碎片里的按钮坏了。没有错误,我也不知道它出了什么问题

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;


public class GenApp extends Fragment {
EditText etBillAmt;
Spinner spinType, spinHours, spinDays, spinWeeks;
EditText etWattage, etHour, etDay, etWeek, etMonth;
Button btnCalculate;
String BillAmountS,h,d,w;
int i,dfrm,wfrm;
double BillAmount, PKwh, WattDouble, CPH, CPD, CPW, CPM, hrfrm;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    final View rootView = inflater.inflate(R.layout.genapp, container, false);

    h = "8";
    d = "7";
    w = "4";
    etBillAmt = (EditText)rootView.findViewById(R.id.etBillAmt);
    spinType = (Spinner) rootView.findViewById(R.id.spinType);
    spinHours = (Spinner) rootView.findViewById(R.id.spinHours);
    spinDays = (Spinner) rootView.findViewById(R.id.spinDays);
    spinWeeks = (Spinner) rootView.findViewById(R.id.spinWeeks);
    etWattage = (EditText)rootView.findViewById(R.id.etWattage);
    etHour = (EditText)rootView.findViewById(R.id.etHour);
    etDay = (EditText)rootView.findViewById(R.id.etDay);
    etWeek = (EditText)rootView.findViewById(R.id.etWeek);
    etMonth = (EditText)rootView.findViewById(R.id.etMonth);
    btnCalculate = (Button)rootView.findViewById(R.id.btnCalculate);

    final String[] apptypearray = {"AIR COOLER/HUMIDIFIER", "BLENDER", "CELLPHONE CHARGER", "CFL(10 WATTS)", "CFL(18 WATTS)", "CHRISTMAS LIGHT(100 BULBS W/O BLINKER)", "CHRISTMAS LIGHT(100 BULBS W/ BLINKER)",
    "CLOTHES DRYER(HEATER)", "CLOTHES DRYER(MOTOR)", "COFFEE MAKER", "COMPUTER PRINTER", "COMPUTER W/MONITOR", "FLAT IRON(STANDARD)", "FLAT IRON(DELUXE)", "FLOOR POLISHER(STANDARD)", "FLOOR POLISHER(DELUXE)",
    "FLUORESCENT LAMP 21' (20 WATTS)", "FLUORESCENT LAMP 48' (40 WATTS)", "HAIR DRYER", "INCANDESCENT BULB (25 WATTS)", "INCANDESCENT BULB (50 WATTS)", "INCANDESCENT (100 WATTS)", "RECHARGEABLE LIGHTS/FANS", "SEWING MACHINE",
    "VACUUM CLEANER", "WAHING MACHINE AUTOMATIC (6 KG)", "WASHING MACHINE AUTOMATIC (10 KG)", "WASHING MACHINE TWIN TUB (6 KG)", "WASHING MACHINE TWIN TUB (10 KG)", "WATER DISPENSER(COOLING)", "WATER DISPENSER(HEATING)",
            "WATER HEATER", "WATER HEATER (PORTABLE)", "OTHER GENERAL APPLIANCES"};
    final double[] wattagearray = {65, 300, 6, 10, 18, 56, 16, 1600, 250, 600, 175, 225, 600, 1000, 200, 360, 32, 53, 320, 25, 50, 100, 12, 75, 800, 527, 1035, 277, 583, 90, 550, 3000, 1600};
    final double[] KWh = {0.33, 5.18, 6.64, 8.08, 10.12, 10.50, 10.87, 11.54, 11.80};
    final String[] hoursarray = {"15 minutes","30 minutes","45 minutes","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24"};
    final String[] daysarray = {"1","2","3","4","5","6","7"};
    final String[] weeksarray = {"1","2","3","4"};

    ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, apptypearray);
    spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinType.setAdapter(spinnerArrayAdapter);
    spinType.setPrompt("Please choose your Appliance");
    spinType.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> adapterView, View view, int position, long l) {
            for (i = 0; i<apptypearray.length; i++){
                if(spinType.getItemAtPosition(position) == apptypearray[i]) {

                    try {
                        etWattage.setText(String.valueOf(wattagearray[i]));
                    } catch (Exception e) {
                        Toast.makeText(getActivity().getApplicationContext(), "Missing Entries", Toast.LENGTH_SHORT).show();
                    }
                }
            }
            etHour.setText("");
            etDay.setText("");
            etWeek.setText("");
            etMonth.setText("");

        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {

        }
    });
    ArrayAdapter<String> HourArrayAdapter = new ArrayAdapter<String>(getActivity(),android.R.layout.simple_spinner_item, hoursarray);
    HourArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinHours.setAdapter(HourArrayAdapter);
    int GP1 = HourArrayAdapter.getPosition(h);
    spinHours.setSelection(GP1);
    spinHours.setPrompt("Hours Used Per Day");
    spinHours.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> houradapterView, View view, int hpos, long l) {
            for(int hctr = 0; hctr<hoursarray.length; hctr++){
                if(spinHours.getItemAtPosition(hpos) == hoursarray[0]) {
                    hrfrm = 0.25;
                }
                else if (spinHours.getItemAtPosition(hpos) == hoursarray[1]) {
                    hrfrm = 0.5;
                }
                else if (spinHours.getItemAtPosition(hpos) == hoursarray[2]) {
                    hrfrm = 0.75;
                }
                else if (spinHours.getItemAtPosition(hpos) == hoursarray[hctr]) {
                    hrfrm = Double.parseDouble(hoursarray[hctr]);
                }

            }
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {

        }
    });

    ArrayAdapter<String> DayArrayAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, daysarray);
    spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
    spinDays.setAdapter(DayArrayAdapter);
    int GP2 = DayArrayAdapter.getPosition(d);
    spinDays.setSelection(GP2);
    spinDays.setPrompt("Days Used Per Week");
    spinDays.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> DayadapterView, View view, int dpos, long l) {
            for(int dctr = 0; dctr<daysarray.length;dctr++)
            {
                if(spinDays.getItemAtPosition(dpos)==daysarray[dctr])
                {
                    dfrm = Integer.parseInt(daysarray[dctr]);
                }
            }
        }

        @Override
        public void onNothingSelected(AdapterView<?> adapterView) {

        }
    });

    ArrayAdapter<String> WeekArrayAdapter = new ArrayAdapter<String>(getActivity(),android.R.layout.simple_spinner_item, weeksarray);
    WeekArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinWeeks.setAdapter(WeekArrayAdapter);
    int GP3 = WeekArrayAdapter.getPosition(w);
    spinWeeks.setSelection(GP3);
    spinWeeks.setPrompt("Weeks used per Month");
    spinWeeks.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> WeekadapterView, View view, int wpos, long l) {
            for(int wkctr = 0; wkctr<weeksarray.length; wkctr++){
                if(spinWeeks.getItemAtPosition(wpos)==weeksarray[wkctr]) {
                    wfrm = Integer.parseInt(weeksarray[wkctr]);
                }
            }

        }

        @Override
        public void onNothingSelected(AdapterView<?> adapterView) {

        }
    });

    btnCalculate.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View rootView) {
            try {
                WattDouble = Double.parseDouble(etWattage.getText().toString());
                BillAmountS = etBillAmt.getText().toString();
                BillAmount = Double.parseDouble(BillAmountS);
                if (BillAmount >= 0 && BillAmount <= 108) {
                    PKwh = KWh[0];
                } else if (BillAmount >= 109 && BillAmount <= 338) {
                    PKwh = KWh[1];
                } else if (BillAmount >= 339 && BillAmount <= 573) {
                    PKwh = KWh[2];
                } else if (BillAmount >= 574 && BillAmount <= 1021) {
                    PKwh = KWh[3];
                } else if (BillAmount >= 1022 && BillAmount <= 2109) {
                    PKwh = KWh[4];
                } else if (BillAmount >= 2110 && BillAmount <= 3271) {
                    PKwh = KWh[5];
                } else if (BillAmount >= 3272 && BillAmount <= 4625) {
                    PKwh = KWh[6];
                } else if (BillAmount >= 4626 && BillAmount <= 7684) {
                    PKwh = KWh[7];
                } else if (BillAmount >= 7685) {
                    PKwh = KWh[8];
                } else {
                    Toast.makeText(getActivity().getApplicationContext(), "Invalid Amount", Toast.LENGTH_LONG);
                }
                /*Cost per hour = Rate x [(appliance wattage x 0.8 x 0.8) + (appliance wattage x 0.2)] / 1000)*/
                CPH = PKwh * (WattDouble / 1000);
                CPD = CPH * hrfrm;
                CPW = CPD * dfrm;
                CPM = CPW * wfrm;

                etHour.setText("PhP " + String.format("%.2f", CPH));
                etDay.setText("PhP " + String.format("%.2f", CPD));
                etWeek.setText("PhP " + String.format("%.2f", CPW));
                etMonth.setText("PhP " + String.format("%.2f", CPM));
            } catch (NumberFormatException e) {
                Toast.makeText(getActivity().getApplicationContext(), "Invalid Entry", Toast.LENGTH_LONG);


            }
    }

});
    return rootView;
}
}
导入android.os.Bundle;
导入android.support.v4.app.Fragment;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.AdapterView;
导入android.widget.ArrayAdapter;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.Spinner;
导入android.widget.Toast;
公共类GenApp扩展了片段{
EditText-etBillAmt;
微调器微调类型、微调小时数、微调天数、微调周数;
编辑文本etWattage、etHour、etDay、etWeek、ETMOUNT;
按钮BTN计算;
字符串BillAmountS,h,d,w;
int i、dfrm、wfrm;
双倍账单金额、PKwh、瓦特双倍、CPH、CPD、CPW、CPM、hrfrm;
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
最终视图根视图=充气机。充气(R.layout.genapp,容器,假);
h=“8”;
d=“7”;
w=“4”;
etBillAmt=(EditText)rootView.findViewById(R.id.etBillAmt);
spinType=(微调器)rootView.findviewbyd(R.id.spinType);
spinHours=(微调器)rootView.findViewById(R.id.spinHours);
spinDays=(微调器)rootView.findviewbyd(R.id.spinDays);
spinWeeks=(微调器)rootView.findViewById(R.id.spinWeeks);
etWattage=(EditText)rootView.findViewById(R.id.etWattage);
etHour=(EditText)rootView.findViewById(R.id.etHour);
etDay=(EditText)rootView.findViewById(R.id.etDay);
etWeek=(EditText)rootView.findviewbyd(R.id.etWeek);
etMonth=(EditText)rootView.findviewbyd(R.id.etMonth);
btnCalculate=(按钮)rootView.findviewbyd(R.id.btnCalculate);
最终字符串[]apptypearray={“空气冷却器/加湿器”、“搅拌机”、“手机充电器”、“CFL(10瓦)”、“CFL(18瓦)”、“圣诞灯(100个灯泡,不带闪光灯)”、“圣诞灯(100个灯泡,带闪光灯)”,
“干衣机(加热器)”、“干衣机(电机)”、“咖啡机”、“电脑打印机”、“带显示器的电脑”、“熨斗(标准)”、“熨斗(豪华)”、“地板抛光机(标准)”、“地板抛光机(豪华)”,
“荧光灯21(20瓦)”、“荧光灯48(40瓦)”、“电吹风”、“白炽灯泡(25瓦)”、“白炽灯泡(50瓦)”、“白炽灯泡(100瓦)”、“充电灯/风扇”、“缝纫机”,
“吸尘器”、“自动洗衣机(6公斤)”、“自动洗衣机(10公斤)”、“洗衣机双缸(6公斤)”、“洗衣机双缸(10公斤)”、“饮水机(冷却)”、“饮水机(加热)”,
“热水器”、“热水器(便携式)”、“其他通用电器”};
最终双[]瓦塔耳雷={65300,6,10,18,56,161600,250600,175225,600,1000,200,360,32,53320,25,50100,12,758005271035257583,90550,3000,1600};
最终双[]千瓦时={0.33,5.18,6.64,8.08,10.12,10.50,10.87,11.54,11.80};
最终字符串[]hoursarray={“15分钟”、“30分钟”、“45分钟”、“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“10”、“11”、“12”、“13”、“14”、“15”、“16”、“17”、“18”、“19”、“20”、“21”、“22”、“23”、“24”};
最后一个字符串[]daysarray={“1”、“2”、“3”、“4”、“5”、“6”、“7”};
最后一个字符串[]weeksarray={“1”、“2”、“3”、“4”};
ArrayAdapter SpinnerayAdapter=新的ArrayAdapter(getActivity(),android.R.layout.simple\u spinner\u项,apptypearray);
spinnerrayadapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
设置适配器(spinnerrayadapter);
设置提示(“请选择您的设备”);
spinType.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共位置(适配器视图适配器视图视图视图视图内部位置长l){
对于(i=0;i小时视图、视图视图、内部hpos、长l){
for(int-hctr=0;hctr-dayadadaadapterView,视图,int-dpos,长l){
for(int-dctr=0;dctr-WeekadapterView,View-View,int-wpos,long-l){

对于(int wkctr=0;wkctr,您尚未初始化按钮。 首先初始化它

Button btnCalculate = (Button) rootView.findViewById(R.id.value);
btnCalculate.setOnClickListener( now ur function)

尝试检查您是否收到此消息

btnCalculate.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
    Toast.makeText(view.getContext(), "Onclick Listeber button calculate", Toast.LENGTH_LONG).show();

在何处以及如何初始化btnCalculate?btnCalculate=(按钮)rootView.findViewById(R.id.btnCalculate);我在最终视图rootView=inflater.inflate(R.layout.genapp,container,false)之后立即初始化它。谢谢!如果它不太长,您能发布完整的onCreateView代码(或简化版本)还有您的xml布局?是否有任何布局可能会阻止单击事件?我已经在最终视图根视图行之后初始化了按钮。我应该在onClick中再次初始化它吗?谢谢!不,如果您已经初始化它,那么您不需要再次初始化它。除了初始化之外,我还遗漏了任何代码n?谢谢!这意味着您的单击事件正在工作,很可能是逻辑出了问题,无法生成您期望的输出。我的建议:尝试使用断点调试您的程序。非常感谢您的帮助:)@jmjarkas将标题更改为“已解决”,这样其他人就不会再浪费时间,如果答案解决了您的问题,就接受它。还有一件事,您应该尽可能少地使用应用程序上下文。如果活动上下文不可靠,则使用它。