片段中的我的按钮不起作用。没有错误,我不知道它有什么问题。片段内的按钮即使没有错误也不起作用
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;
}
}
在上单击原始的观点是:(view v)
,我读的东西从互联网上说,它应该是相同的名称作为我inflater.inflate
,所以我把它改成(view rootView)
。他们两个都没有发生什么事。按钮仍然不起作用。
在哪里,你如何初始化btnCalculate? – merterpam
btnCalculate =(Button)rootView.findViewById(R.id.btnCalculate); 我在最后查看后立即初始化它查看rootView = inflater.inflate(R.layout.genapp,container,false);线。谢谢! –
如果它不是太长,你能发布完整的onCreateView代码(或简化版本)以及你的xml布局吗?有没有可能阻止点击事件的布局? – merterpam