0

もともと、私は 2 つのアクティビティを持っています。AコールB活動。ここで、A クラスが SherlockFragmentActivity を拡張し、B クラスが SherlockFragment を拡張するように変更しました。

Aクラスでこれらを変更しようとしました:

   private class MyTabListener implements ActionBar.TabListener {
      @Override
      public void onTabSelected(Tab tab, FragmentTransaction ft) {

          if (tab.getPosition()==1) {
              B frag = new B();
              ft.replace(android.R.id.content, frag);

          }

      }

      @Override
      public void onTabUnselected(Tab tab, FragmentTransaction ft) {
        // TODO Auto-generated method stub
      }

      @Override
      public void onTabReselected(Tab tab, FragmentTransaction ft) {
        // TODO Auto-generated method stub
      }


    }

//=============================

Bクラスでは:

public class Br extends SherlockFragment{


    /* Called when the activity is first created */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.promotionslist_tableview);



        //get our listview
        ListView myListView = (ListView) findViewById(R.id.myListView_promotionslist_table);

//==============================

しかし、エラー。1. onCreate 2. findViewById..

私が間違っているのは何ですか?

ヒントを教えてください。ありがとう。

4

2 に答える 2

2

B フラグメントを表示できるようになりましたが、リストビューがメインのリストビューに重なっています..? なんで ?

public class B extends SherlockFragment{

    View view; 

    /* Called when the activity is first created */
    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        //setContentView(R.layout.promotionslist_tableview);





        //get our listview
        ListView myListView = (ListView) view.findViewById(R.id.myListView_promotionslist_table);
.
.
.
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.promotionslist_tableview, container, false);
        return view;
    }
于 2012-12-05T11:07:27.700 に答える
0

onCreateView()メソッドをフラグメントで使用する必要があります。

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.layout, null);

        return view;
    }

View をインフレートして、次のように findViewById を呼び出すことができます。

view.findViewById(...);
于 2012-12-04T15:57:08.247 に答える