2017-09-13 77 views
-2

我有我的android代碼有問題。不能使用這兩個功能的片段

按照方法使用片段時給出錯誤: 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

嘗試設置context.getSystemService或getContext.getSystemService –

回答

1

嘗試此方法之前使用getActivity()

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

這很正常,因爲你在一個片段中,這些都是Activity實例的方法。只需獲取活動實例並使用該實例調用這些方法。

getActivity().getCurrentFocus(); 
    getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); 
    //or 
    getContext().getSystemService(Context.INPUT_METHOD_SERVICE);