0

私のアプリでは、最初に、Activityを拡張していくつかの機能を実行する1つのクラス「abc.java」を作成しました。

しかし今、私はTabViewを実装することに決めました。そして、abc.javaをtabviewの最初のタブにする必要があります。

私の問題は、abc.javaクラスがアクティビティを拡張することです。これをフラグメントに変更すると、エラーが発生します。

現在非推奨となっているTabActivityを実装すると、正常に機能しますが、フラグメントを使用する場合は、どのような変更を行う必要がありますか?

私はabc.javaにいくつかの変更を加える必要があることを知っていますが、それを行う方法がわかりません。私はandroidに不慣れで、これを成し遂げるために一生懸命努力しています。

これがクラス「abc.java」の私のコードです

public class CountAndMarkPage extends Activity
{
  public void onCreate(Bundle savedInstanceState)
  {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.count_mark);

        //lots of code here
   }
 }
4

1 に答える 1

0

同じレイアウトリソースを使用して、Fragmentを拡張し、onCreateViewをオーバーライドする必要があります。ドキュメントからこの情報を見てください。

簡単な例:

public class CountAndMarkPage extends Fragment {
    public void onCreate(Bundle savedInstanceState){
    }

    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState){
        // Inflate your layout
        View myView = inflater.inflate(R.layout.count_mark, container, false);

        // Any additional initialization

        return myView;
    }
}

このレイアウト内のウィジェットにアクセスするには、次のように拡張されたルートビューでfindViewByIdを使用する必要があります。

public class CountAndMarkPage extends Fragment {
    public void onCreate(Bundle savedInstanceState){
    }

    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState){
        // Inflate your layout
        ViewGroup myView = (ViewGroup) inflater.inflate(R.layout.count_mark, container, false);

        // Any additional initialization
        TextView myTextView = (TextView) myView.findViewById(R.id.my_view);
        // And so on
        return myView;
    }
}    
于 2012-09-18T20:12:53.873 に答える