-1

我有这样的问题:片段,viewPager,列表视图和适配器不工作

"Error:(51, 16) error: method addFrag in class ScrollableTabsActivity.ViewPagerAdapter cannot be applied to given types; required: TwoFragment,String found: OneFragment,String reason: actual argument OneFragment cannot be converted to TwoFragment by method invocation conversion".

我怎样才能解决这个问题呢?

感谢

代码是:

import android.os.Bundle; 
import android.support.design.widget.TabLayout; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.app.FragmentPagerAdapter; 
import android.support.v4.view.ViewPager; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 

import java.util.ArrayList; 
import java.util.List; 

import info.androidhive.materialtabs.R; 
import info.androidhive.materialtabs.fragments.EightFragment; 
import info.androidhive.materialtabs.fragments.FiveFragment; 
import info.androidhive.materialtabs.fragments.FourFragment; 
import info.androidhive.materialtabs.fragments.NineFragment; 
import info.androidhive.materialtabs.fragments.OneFragment; 
import info.androidhive.materialtabs.fragments.SevenFragment; 
import info.androidhive.materialtabs.fragments.SixFragment; 
import info.androidhive.materialtabs.fragments.TenFragment; 
import info.androidhive.materialtabs.fragments.ThreeFragment; 
import info.androidhive.materialtabs.fragments.TwoFragment; 

public class ScrollableTabsActivity extends AppCompatActivity { 

    private Toolbar toolbar; 
    private TabLayout tabLayout; 
    private ViewPager viewPager; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_scrollable_tabs); 

     toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 
     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

     viewPager = (ViewPager) findViewById(R.id.viewpager); 
     setupViewPager(viewPager); 

     tabLayout = (TabLayout) findViewById(R.id.tabs); 
     tabLayout.setupWithViewPager(viewPager); 
    } 

    private void setupViewPager(ViewPager viewPager) { 
     ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); 
     adapter.addFrag(new OneFragment(), "PIZZE"); 
     adapter.addFrag(new TwoFragment(), "TWO"); 
     adapter.addFrag(new ThreeFragment(), "THREE"); 
     adapter.addFrag(new FourFragment(), "FOUR"); 
     adapter.addFrag(new FiveFragment(), "FIVE"); 
     adapter.addFrag(new SixFragment(), "SIX"); 
     adapter.addFrag(new SevenFragment(), "SEVEN"); 
     adapter.addFrag(new EightFragment(), "EIGHT"); 
     adapter.addFrag(new NineFragment(), "NINE"); 
     adapter.addFrag(new TenFragment(), "TEN"); 
     viewPager.setAdapter(adapter); 
    } 

    class ViewPagerAdapter extends FragmentPagerAdapter { 
     private final List<Fragment> mFragmentList = new ArrayList<>(); 
     private final List<String> mFragmentTitleList = new ArrayList<>(); 

     public ViewPagerAdapter(FragmentManager manager) { 
      super(manager); 
     } 

     @Override 
     public Fragment getItem(int position) { 
      return mFragmentList.get(position); 
     } 

     @Override 
     public int getCount() { 
      return mFragmentList.size(); 
     } 

     public void addFrag(TwoFragment fragment, String title) { 
      mFragmentList.add(fragment); 
      mFragmentTitleList.add(title); 
     } 

     @Override 
     public CharSequence getPageTitle(int position) { 
      return mFragmentTitleList.get(position); 
     } 
    } 
} 

public class PlanetAdapter extends ArrayAdapter<Planet> { 

    private List<Planet> planetList; 
    private Context context; 
    ArrayList<Planet> objects; 


    public PlanetAdapter(List<Planet> planetList, Context context) { 
     super(context, R.layout.single_listview_item, planetList); 
     this.planetList = planetList; 
     this.context = context; 
    } 

    public class PlanetHolder { 
     public TextView planetName; 
     public TextView distView; 
     public CheckBox chkBox; 
     public EditText edit; 
     public String quantità; 



    } 


@Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
View row = convertView; 
     PlanetHolder holder = null; 
     if (row == null) { 
      LayoutInflater inflater = ((Activity) context).getLayoutInflater(); 
      row = inflater.inflate(R.layout.single_listview_item, parent, false); 
      holder = new PlanetHolder(); 
      holder.planetName = (TextView) row.findViewById(R.id.name); 
      holder.distView = (TextView) row.findViewById(R.id.dist); 
      holder.chkBox = (CheckBox) row.findViewById(R.id.chk_box); 
      holder.edit = (EditText) row.findViewById(R.id.editText); 
      holder.edit.setVisibility(View.GONE); 
      holder.edit.setEnabled(false); 
      row.setTag(holder); 
     } else { 
      holder = (PlanetHolder) row.getTag(); 
     } 
     final Planet p = planetList.get(position); 

     holder.chkBox.setOnCheckedChangeListener((Main) context); 
     final PlanetHolder finalHolder = holder; 
     holder.chkBox.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if (finalHolder.chkBox.isChecked()) { 
        finalHolder.edit.setVisibility(View.VISIBLE); 
        finalHolder.edit.setEnabled(true); 
        finalHolder.edit.addTextChangedListener(new TextWatcher() { 
         @Override 
         public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
         } 

         @Override 
         public void onTextChanged(CharSequence s, int start, int before, int count) { 
         } 

         @Override 
         public void afterTextChanged(Editable s) { 
          p.setQuantità(finalHolder.edit.getText().toString().trim()); 
         } 
        }); 
       } else { 
        finalHolder.edit.setVisibility(View.GONE); 
        finalHolder.edit.setEnabled(false); 
        finalHolder.edit.setText(null); 
       } 
      } 
     }); 
     holder.planetName.setText(p.getName()); 
     holder.distView.setText("" + p.getDistance()); 
     holder.chkBox.setChecked(p.isSelected()); 
     holder.chkBox.setTag(p); 
     holder.edit.setEnabled(false); 

     return row; 
    } 


    public ArrayList<Planet> getBox() { 
     ArrayList<Planet> box = new ArrayList<Planet>(); 
     for (Planet p : planetList) { 
      if (p.selected) 
       box.add(p); 
     } 
     return box; 
    } 


} 

回答

0

更新你的方法:

public void addFrag(Fragment fragment, String title) { 
      mFragmentList.add(fragment); 
      mFragmentTitleList.add(title); 
     } 
+0

现在我只有 “OneFragment” 强调与线红色 –

+0

“适应ter.addFrag(new OneFragment(),“PIZZE”); “ –

+0

更新你的addFrag方法,因为我在回答中提到只有第一行显示错误尝试删除第一行和第二行,我认为第三行也显示红色行 – USKMobility

相关问题