1

このコードを使用して n 個のタブを作成します。

TabHost tabs = (TabHost)findViewById(R.id.tabhost); 
     tabs.setup(mLocalActivityManager); 

     StateListDrawable[] drawables  = new StateListDrawable[hotel.categoryArray.length];

     for (int i = 0; i < hotel.categoryArray.length; i++){
         TabSpec spec1 = tabs.newTabSpec(hotel.categoryArray[i]);
         Intent intent = new Intent(this, ListViewActivity.class);
         Bundle b = new Bundle();
         b.putParcelableArrayList("Businesses", createArray(hotel.categoryArray[i], hotel.explore));
         intent.putExtras(b);
         spec1.setContent(intent); 
         TextView tab1 = new TextView(this);
         tab1.setText(hotel.categoryArray[i]);
         tab1.setGravity(android.view.Gravity.CENTER);
         tab1.setTextSize(14.0f);
         tab1.setTextColor(text);
         drawables[i] = new StateListDrawable();
         drawables[i].addState(selected, new ColorDrawable(selectedColor));
         drawables[i].addState(unselected, new ColorDrawable(defaultColor));
         tab1.setBackgroundDrawable(drawables[i]);
         spec1.setIndicator(tab1);
         tabs.addTab(spec1);
     }

     tabs.setCurrentTab(0);

これが私の ListViewActivity です。オブジェクトの ArrayList を取得し、カスタムの MyCustomBaseAdapter を使用して、正常に動作しているように見えるリストを作成します。

 @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.list);

         Bundle bundle = this.getIntent().getExtras();
         ArrayList<Business> business = null;
         if(bundle!=null) {
             business = bundle.getParcelableArrayList("Businesses");
         }

         final ListView lv1 = getListView();
         lv1.setAdapter(new MyCustomBaseAdapter(this, business));

         lv1.setOnItemClickListener(new OnItemClickListener() {
          @Override
          public void onItemClick(AdapterView<?> a, View v, int position, long id) { 
           Object o = lv1.getItemAtPosition(position);
           Business fullObject = (Business)o;
           Toast.makeText(ListViewActivity.this, "You have chosen: " + " " + fullObject.name, Toast.LENGTH_LONG).show();
          }  
         });
 }

問題は、タブに値が入力され、新しいタブを押すたびにフィールドに問題なく値が入力されることですが、前のタブに戻っても元に戻らず、コンテンツが残ります。また、それは奇妙な方法でそれを行います.2番目のタブから1番目に移動せず、3番目から2番目にうまく切り替わります.4番目に移動すると、その内容はすべてのタブに残ります.

リストにデータを入力し、「アドホック」タブを持つ1つのクラスを持つために、問題または代替ソリューションをどこで探すべきですか?

4

0 に答える 0