2013-07-26 2 views
0
ArrayList <HashMap<String,String>> quesion_list,answerkey; 

    viewPager = (ViewPager) findViewById(R.id.pager); 
      adapter = new ViewPagerAdapter(PracticeModeActivity.this,quesion_list,A1,A2,A3,A4,A5); 
        // Binds the Adapter to the ViewPager 
       viewPager.setAdapter(adapter); 
       viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { 
        @Override 
        public void onPageScrolled(int i, float v, int i2) { 

        } 

        @Override 
        public void onPageSelected(int i) { 

        // Log.i("page",String.valueOf(i)); 
         viewPager.getAdapter().getCount(); 
         int current = viewPager.getCurrentItem(); 
         int current_count=current+1; 
        // Log.i("count",String.valueOf(viewPager.getAdapter().getCount())); 
         noquestions.setText(String.valueOf(current_count)+" of "+length); 

        // Log.i("options",options.toString()); 
//     if(i!=0) 
//     { 
//      answerA1.setChecked(false); 
//      answerA2.setChecked(false); 
//      answerA3.setChecked(false); 
//      answerA4.setChecked(false); 
// 
//     } 

        } 

        @Override 
        public void onPageScrollStateChanged(int i) { 
       //  viewPager.getParent().requestDisallowInterceptTouchEvent(true); 
        } 
       }); 

    public class ViewPagerAdapter extends PagerAdapter { 
      // Declare Variables 
      Context context; 
      String[] rank; 
      String[] country; 
      String[] population; 
      int[] flag; 
      LayoutInflater inflater; 
      private ArrayList<HashMap<String, String>> hashmap; 

      public ViewPagerAdapter(Context context,ArrayList<HashMap<String, String>> hashMaps) { 
       this.context = context; 
       this.hashmap = hashMaps;    

      } 

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

      @Override 
      public boolean isViewFromObject(View view, Object object) { 
       return view == ((RelativeLayout) object); 
      } 
      @Override 
      public void finishUpdate(View container) { 
      } 

      @Override 
      public void restoreState(Parcelable state, ClassLoader loader) { 
      } 

      @Override 
      public Parcelable saveState() { 
       return null; 
      } 

      @Override 
      public void startUpdate(View container) { 
      } 
      @Override 
      public Object instantiateItem(final ViewGroup container, final int position) { 

       // Declare Variables 
       TextView txtrank; 

       inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
       itemView = inflater.inflate(R.layout.question_item, container,false); 
       TextView correctanswer=(TextView)itemView.findViewById(R.id.correctanswer); 
    ((ViewPager) container).addView(itemView); 

       r1=(RadioButton)itemView.findViewById(R.id.answerA1); 
       return itemView; 
      } 
    } 
/* button onclick method */ 
public void Clear(View v) 
{ 

      viewPager.findViewWithTag(viewPager.getCurrentItem()); 
      int current = viewPager.getCurrentItem(); 
      Log.i("click",String.valueOf(current)); 
    //  View view=viewPager.getChildAt(current); 
    //  ((ViewGroup))mViewPager.getChildAt(MyActivity.mViewPager.getCurrentItem())); 
      View view  = viewPager.getChildAt(viewPager.getCurrentItem()); 
      options.set(current, "0"); 
    //  adapter = new ViewPagerAdapter(PracticeModeActivity.this,quesion_list); 
      // Binds the Adapter to the ViewPager 
    // viewPager.setAdapter(adapter); 
     viewPager.getAdapter().notifyDataSetChanged(); 
      RadioButton rl11=(RadioButton)v.findViewById(R.id.answerA1); 
    //   
      rl11.setChecked(false); 
    //  

     } 

여기는 listview.Clear에 대한 viewpager adaper를 사용하고 있는데, adapter.if에서 버튼을 클릭하면 라디오 버튼이 비활성화되고 null 포인터 예외가 발생합니다. 이 문제를 바로 잡을 생각이 있니?이 일을해야 해. 아무도 도와주지 않니?기본보기 버튼 onclick 메소드에서 뷰 페이지 어댑터를 업데이트하는 방법은 무엇입니까?

답변

-1

이렇게하려면 여러 가지 방법이 있습니다.

첫 번째 옵션은 쉽지만 조금 비효율적입니다.

Override getItemPosition in your PagerAdapter like this: 

public int getItemPosition(Object object) { 
    return POSITION_NONE; 
} 

ViewPager PagerAdapter not updating the View

+0

검사 전체 게시물을 http://stackoverflow.com/q/7263291/2624806 – CoDe

관련 문제