2017-10-08 16 views
-1

조각 내의 내 버튼이 작동하지 않습니다. 오류가 없으며 무엇이 잘못되었는지 알지 못합니다.버튼 내부 조각은 오류없이 작동하지 않습니다.

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)로 변경 내 같은 이름을해야 말을 인터넷으로 뭔가를 읽어 보시기 바랍니다. 두 사람에게 아무 일도 일어나지 않았습니다. 버튼은 여전히 ​​작동하지 않습니다.

+0

하고 btnCalculate 방법을 초기화 할을 받고 있는지 확인하기 위해 초기화? – merterpam

+0

btnCalculate = (Button) rootView.findViewById (R.id.btnCalculate); 최종 뷰 바로 다음에 초기화했습니다. rootView = inflater.inflate (R.layout.genapp, container, false); 선. 고맙습니다! –

+0

너무 길지 않은 경우 전체 onCreateView 코드 (또는 단순화 된 버전)와 XML 레이아웃을 게시 할 수 있습니까? 클릭 이벤트를 차단할 수있는 레이아웃이 있습니까? – merterpam

답변

0

버튼을 초기화하지 않았습니다. 첫째는

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

나는 이미 버튼을 바로 초기화했습니다. 최종 뷰 rootView 라인. onClick 내에서 다시 초기화해야합니까? 고맙습니다! –

+0

아니요 초기화 한 다음 다시 초기화해야 할 필요가 없습니다 –

+0

코드를 놓친 적이 있습니까? 초기화 이외에? 고맙습니다! –

1

에 한번이 메시지

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

예, 축배가 나옵니다. 고맙습니다. –

+0

@JmJarkass 그것은 문제가 해결되었음을 의미합니다. –

+1

이것은 클릭 이벤트가 작동하고 있음을 의미합니다. 아마도 로직에 문제가있어 예상 한 결과를 산출하지 못했을 것입니다. 내 제안 : 중단 점을 사용하여 프로그램을 디버깅 해보십시오. – merterpam