2016-03-20 5 views
0

Мне нужно увеличить/уменьшить текст в текстовом виде с помощью двух кнопок (один шаг, один декремент). Я делаю все в Фрагменте, и я заметил, что это немного другая работа в них.Использовать кнопку в фрагментах

Эти кнопки и TextView

<Button 
     android:layout_width="36dp" 
     android:layout_height="match_parent" 
     android:layout_marginLeft="90dp" 
     android:text="-" 
     android:id="@+id/minus" 
     android:onClick="decrement" 
     /> 
     <TextView 
     android:layout_width="36dp" 
     android:layout_height="match_parent" 
     android:paddingTop="15dp" 
     android:textSize="18sp" 
     android:id="@+id/text" 
     android:textAlignment="center" 
     android:texr="stats"/> 
     <Button 
     android:layout_width="36dp" 
     android:layout_height="match_parent" 
     android:text="+" 
     android:id="@+id/plus" 
     android:onClick="increment" 
     /> 

Это код фрагмента

public class MyFragment extends Fragment { 
int stat= 0; 


@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 

    return inflater.inflate(R.layout.fragment_my_fragment, container, false); 
} 
public void increment(View view){ 
    stat= stat+ 1; 
    displaytext(); 
} 

public void decrement(View view){ 
     stat = stat - 1; 
     displaytext(); 
} 

public void displaytext(){ 
    TextView textViewevstat = (TextView) getView().findViewById(R.id.text); 
    textViewevstat.setText("" + stat); 
} 
} 

Это не берет меня синтаксические ошибки или аналогичный, но, в эмуляторе, приложение авария, когда я нажимаю один кнопка. Я должен переделать весь этот проход в другое время, но в этом случае, я думаю, достаточно изменить имя и имя метода.

ответ

1

Здесь это сделать

View v;   // Declare this 

public class MyFragment extends Fragment { 
int stat= 0; 


@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 

    v=inflater.inflate(R.layout.fragment_my_fragment, container, false); 
    return v; 
} 
public void increment(View view){ 
    stat= stat+ 1; 
    displaytext(); 
} 

public void decrement(View view){ 
     stat = stat - 1; 
     displaytext(); 
} 

public void displaytext(){ 
    TextView textViewevstat = (TextView)v.findViewById(R.id.text);// use it here 
    textViewevstat.setText("" + stat); 
} 

}