2017-10-24 6 views
1

現在のビューページからコピーしたテキストを次のテキストまたは前のテキストにコピーすると、Text.viewにテキストを表示するビューページャーがあります。 textviewは、ビューページでコピーしたときに次または前のテキストをコピーします。

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()){ 
     case R.id.copyid: 

      TextView msg= (TextView) viewPager.findViewById(R.id.textView); 
      String msgs=msg.getText().toString(); 
      Intent sendIntent = new Intent(); 
      sendIntent.setAction(Intent.ACTION_SEND); 
      sendIntent.putExtra(Intent.EXTRA_TEXT,msgs); 
      sendIntent.setType("text/plain"); 
      startActivity(Intent.createChooser(sendIntent,"Share Via")); 
      break; 
    } 

とviewpagerアダプタクラスで

: - - : はここに私のmainactivityメソッドコードである

@Override 
public Object instantiateItem(ViewGroup container, int position) { 
    LayoutInflater inflater= (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    layout=inflater.inflate(R.layout.viewpager_layour,null); 
    msg= (TextView) layout.findViewById(R.id.textView); 
    msg.setText(list.get(position)); 
    ((ViewPager) container).addView(layout, 0); 

    return layout; 
} 

答えて

0

あなたがアクセスできる場合listonOptionsItemSelectedに、あなたは

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()){ 
     case R.id.copyid: 

     int i = viewPager.getCurrentItem(); 
     String msgs= i>=0?list.get(i):""; 
     Intent sendIntent = new Intent(); 
     sendIntent.setAction(Intent.ACTION_SEND); 
     sendIntent.putExtra(Intent.EXTRA_TEXT,msgs); 
     sendIntent.setType("text/plain"); 
     startActivity(Intent.createChooser(sendIntent,"Share Via")); 
     break; 


} 

使用することができますそれより速くなります。あなたのコードでは、問題の重複IDはTextViewです。一見してくださいthis answer.

+0

ありがとう。完璧な解決策 – AkashK

+0

@AkashKこの回答が役に立ったと思うなら、それを受け入れてください。 –

+0

回答として受け入れます。ありがとう – AkashK

関連する問題