2013-09-28 3 views
0

Привет Я пытаюсь рассчитать число, такое как калькулятор. код работает, если я использую Activity, но не работает в фрагменте Шерлока. Я использую android: onClick = "". Может кто-то сказать, что мне делать, чтобы реализовать этот код. Спасибо.как рассчитать число, используя SherlockFragment

Код:

public class Calculate extends SherlockFragment { 

private int resultspinner, inputnumber, totals; 

private Spinner spinner; 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    View rootView = inflater.inflate(R.layout.activity_summary, 
      container, false); 

    setSpinnerContent(rootView);   
    return rootView; 
} 

private void setSpinnerContent(View view) 
{ 
    spinner = (Spinner) view.findViewById(R.id.spinner); 
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(getActivity() 
      .getBaseContext(), 
      R.array.pangkat_arrays, android.R.layout.simple_spinner_item); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner.setAdapter(adapter); 

... 
    } 

     // showing a toast on selecting an item 
     //Toast.makeText(parent.getContext(), item, Toast.LENGTH_LONG).show(); 
    } 

    @Override 
    public void onNothingSelected(AdapterView<?> arg0) { 
     // TODO Auto-generated method stub 

    } 

    }); 
} 

public void startcalculate(View view) { 

    EditText ed_resultspinner = (EditText) getView().findViewById(R.id.EditText1); 
    EditText ed_input = (EditText) getView().findViewById(R.id.EditText2); 
    EditText ed_total = (EditText) getView().findViewById(R.id.EditText3); 

    try { 

     resultspinner = Integer.parseInt(ed_resultspinner.getText().toString()); 
     inputnumber = Integer.parseInt(ed_input.getText().toString()); 
     totals = resultspinner + inputnumber; 
     ed_total.setText(String.valueOf(totals)); 

    } catch (Exception e) { 
     // TODO: handle exception 
     e.printStackTrace(); 
    } 

} 

<Spinner 
    android:id="@+id/spinner1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" /> 

<EditText 
    android:id="@+id/editText1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:ems="10" 
    android:inputType="number" /> 

<EditText 
    android:id="@+id/editText2" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:ems="10" 
    android:inputType="number" > 
<requestFocus /> 
</EditText> 

<EditText 
    android:id="@+id/editText3" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:ems="10" 
    android:inputType="number" /> 

<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:onClick="startcalculate" 
    android:text="Button" /> 

Ошибка

java.lang.IllegalStateException: Не удалось найти метод startcalculate (View) я n класс активности com.user.learing.MainActivity для обработчика onClick в классе вида android.widget.Button с id 'button1'

ответ

0

Это происходит потому, что ваш класс SherlockFragment не находит ссылку onClick по какой-то причине, вам нужно сделать удаляет onClick из макета и точно устанавливает код таким образом

Button button1 = (Button) view.findViewById(R.id.button1); 
    button1.setOnClickListener(new OnClickListener() { 

     public void onClick(View v) { 
      // your logic 
     } 
    }); 
Смежные вопросы