0

こんにちは、sherlockfragment でクリック リスナーを作成したいのですが、クリックするたびに「view.class ソースが見つかりません」と表示されます。どのアクションを実行しても関係ありません。それを使用して、アクティビティを変更するインテントを開始したいと考えています。

ここに私のコードがあります:

public class SafanTab extends SherlockFragment {

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

    return inflater.inflate(R.layout.safantab, container, false);

}

public void onOverClick(View view) {
    Intent myIntent = new Intent(view.getContext(), OverSafan.class);
    startActivityForResult(myIntent, 0);
    }


public void nProductenClick(View view) {
    Intent myIntent = new Intent(view.getContext(), Over_Safan.class);
    startActivityForResult(myIntent, 0);
    }


public void onTwitterClick(View view) {
    Intent myIntent = new Intent(view.getContext(), Over_Safan.class);
    startActivityForResult(myIntent, 0);
    }

}

レイアウト xml でボタンのリスナーを定義します。

android:onClick="OnOverClick"

長い間試してみましたが、インターネットで「View.class source not found」を検索しましたが、問題を解決するものは見つかりませんでした。質問でわかるように、私は ActionBarSherlock を使用しています。

4

2 に答える 2

2

フラグメントでは onOverClick コールバックを取得できません。onActivityCreated() メソッドで次のようなものを使用します。

    // Handle onclick
    getView().findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // do something
        }
     });

その他のオプションについては、この質問を参照してください: How to handle button click using the XML onClick within Fragments

編集: onCreateView の場合、次のことができます。

  public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
     View view = inflater.inflate(R.layout.my_layout, container, false);
     view.findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // do something
        }
     });
     return view;
  }
于 2012-08-02T13:08:26.217 に答える
-1

これが問題かどうかはわかりませんが、メソッドの名前が次のように定義されていることがわかります。

public void onOverClick(View view)

ただし、XML では次のように指定します。

android:onClick="OnOverClick"

文字「O」は、xml では大文字になります。

于 2012-08-02T13:07:41.140 に答える