0

クラスでサービスを開始したい

public class LayoutOne extends Fragment implements OnClickListener

以前はActivityスーパークラスを拡張したときに問題なく動作しましたが、Fragmentを拡張する必要があるため、問題が発生しています。

OnClicklistenerをLayoutOneクラスに実装したので、そのクラスでサービスを開始したいのですが、新しいIntent行とstartServcie行でエラーが発生します。これを修正する方法はありますか?

@Override
public void onClick(View v) {

switch (v.getId()) {
case R.id.bGo:

if (mStartGo) {
mButton.setText(“Stop going boy”);
mStartGo = false;

Intent intent = new Intent(this, StartGoService.class);
Messenger messenger = new Messenger(handler);
intent.putExtra(“MESSENGER”, messenger);
startService(intent);
//…
4

1 に答える 1

2

使用してみてください:

Intent intent = new Intent(v.getContext(), StartGoService.class);
Messenger messenger = new Messenger(handler);
intent.putExtra(“MESSENGER”, messenger);
v.getContext().startService(intent);

これはビューのonClick()メソッドであるため、ビューの作成に使用されたコンテキストを使用できるはずです。

于 2013-03-10T18:34:41.093 に答える