0

フラグメントからアクティビティのメソッドにアクセスする際に問題があります。または、フラグメントからのアクティビティに含まれるもの。

フラグメントコードは次のとおりです。

public class MainFragment extends Fragment {

private MainActivity ma = (MainActivity) getActivity();
public SipAudioCall call = null;
public SipManager mSipManager = null;
public SipProfile mSipProfile = null;



public MainFragment() {
    // TODO Auto-generated constructor stub

}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    // Create a new TextView and set its text to the fragment's section
    // number argument value.
    LinearLayout mLinearLayout = (LinearLayout) inflater.inflate(R.layout.main_layout, container, false);

    final Button callbtn = (Button) mLinearLayout.findViewById(R.id.callbtn);
    final Button endbtn = (Button) mLinearLayout.findViewById(R.id.endbtn);



    callbtn.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            callbtn.setVisibility(View.GONE);
            endbtn.setVisibility(View.VISIBLE);
            ma.initiateCall();    
        }
    });

アクティビティのキャストが間違っている可能性がありますか?事前にThx

4

1 に答える 1

1

getActivity() を呼び出したときに、フラグメントがアクティビティに関連付けられていないと推測しています。フラグメント メソッド onAttach() でアクティビティ参照を初期化してみてください。

だから、このようなもの:

@Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);
        try {
            ma = (MainActivity) activity;
        } catch (ClassCastException e) {
            throw new ClassCastException(activity.toString() + " Not MainActivity class instance");
        }
    }
于 2012-12-16T03:28:15.690 に答える