2013-06-21 2 views
1

У меня есть приложение для пейджера, работающего правильно. Пейджер представления содержит различные строки данных в массиве, отображаемом по одному после прокрутки. У меня есть кнопка, которая при нажатии на должно получить текущее содержание и передать его на другой вид деятельности здесь мой код:Передача данных с пейджера представления на другую активность

/*MainActivity*/ 
public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     // Get the view from viewpager_main.xml 
     setContentView(R.layout.activity_main); 

     btn = (Button) findViewById (R.id.button1); 


     item = new String[] { "Apple", "Movie", "Melon", "pawpaw", 
       "Jungle", "Forest" }; 



     // Locate the ViewPager in viewpager_main.xml 
     viewPager = (ViewPager) findViewById(R.id.pager); 
     // Pass results to ViewPagerAdapter Class 
     adapter = new ViewPagerAdapter(this, item); 
     // Binds the Adapter to the ViewPager 
     viewPager.setAdapter(adapter); 

     btn.setOnClickListener(new View.OnClickListener() { 

        @Override 
        public void onClick(View arg0) { 
         // TODO Auto-generated method stub 
         Intent i = new Intent(getApplicationContext(), ContentActivity.class); 
         i.putExtra("Currentitem", item[0].toString()); 
         startActivity(i); 
        } 
       }); 


    } 

Ниже класс ViewPagerAdapter

public class ViewPagerAdapter extends PagerAdapter { 
    // Declare Variables 
    Context context; 
    String[] item; 
    LayoutInflater inflater; 

    public ViewPagerAdapter(Context context, String[] item) { 
     this.context = context; 
     this.quote = item; 
    } 


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

    @Override 
    public Object instantiateItem(ViewGroup container, int position) { 

     TextView item; 

     inflater = (LayoutInflater) context 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View itemView = inflater.inflate(R.layout.activity_view_pager_adapter, container, 
       false); 


     txtitem = (TextView) itemView.findViewById(R.id.quote); 


     txtitem.setText(quote[position]); 




     ((ViewPager) container).addView(itemView); 

     return itemView; 

Заранее спасибо

+0

'item [0] .toString()' всегда будет передавать первый элемент из массива (в данном случае «Apple»). – Rajesh

+0

до сих пор это то, что у меня есть, мне нужен код, который передаст элемент, находящийся в текущем представлении экрана, не только «Apple» – Richmahnn

+0

, так что вы можете получить в следующем действии? –

ответ

0

Это должен работать нормально:

btn.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View arg0) { 

      int currentItem =viewPager.getCurrentItem(); 

      Intent i = new Intent(getApplicationContext(), ContentActivity.class); 
      i.putExtra("Currentitem", item[currentItem].toString()); 

      startActivity(i); 
    } 
    }); 

С наилучшими пожеланиями.

+0

отлично работает – Richmahnn