2017-09-13 8 views
-2

私のAndroidのコードに問題があります。これら2つの機能をフラグメントで使用することはできません

断片を使用するときは、次の方法でエラーを与える:ここで 1. getSystemService() 2. getCurrentFocus()

エラーがある場所を正確にあなたたちは知ることができるので、イメージは次のとおりです。 Android Studio Image

どれでも助けに感謝します。事前に おかげで:)

package com.saipriyank.taxdiscount; 
import android.content.Context; 
import android.os.Bundle; 
import android.support.annotation.Nullable; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.view.inputmethod.InputMethodManager; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 
import android.widget.Toast; 

public class discount_frag extends Fragment { 

    private static final String TAG = "discount_Frag"; 
    double num1, num2, sum; 

    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.discount_frag,container,false); 

     final EditText txtnum1 = (EditText)view.findViewById(R.id.txtnum1); 
     final EditText txtnum2 = (EditText)view.findViewById(R.id.txtnum2); 
     final Button bt = (Button)view.findViewById(R.id.bt); 
     final TextView tvAmount = (TextView)view.findViewById(R.id.tvAmount); 
     final TextView tvTotal = (TextView)view.findViewById(R.id.tvTotal); 

     return view; 


     bt.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       InputMethodManager inputManager = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 

       inputManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 
         InputMethodManager.HIDE_NOT_ALWAYS); 

       try 
       { 
        num1 = Double.parseDouble(txtnum1.getText().toString()); 
        num2 = Double.parseDouble(txtnum2.getText().toString()); 
        sum = (num1 * num2)/100; 
        tvAmount.setText(Double.toString(sum)); 

        tvTotal.setText(Double.toString(num1 - sum)); 
       } 
       catch (Exception e) { 
        Toast.makeText(getActivity(),"The fileds can not be empty.",Toast.LENGTH_SHORT).show(); 
        e.printStackTrace(); 
       } 





      } 
     }); 


    } 
} 
+0

try set context.getSystemServiceまたはgetContext.getSystemService –

答えて

1

方法前getActivity()を使用してみてください。

getActivity().getSystemService(); 
getActivity().getCurrentFocus(); 
1

これは、フラグメント内にあり、これらがアクティビティインスタンスのメソッドであるため、これは正常です。アクティビティのインスタンスを取得し、それを使用してこれらのメソッドを呼び出します。

getActivity().getCurrentFocus(); 
    getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); 
    //or 
    getContext().getSystemService(Context.INPUT_METHOD_SERVICE); 
関連する問題