2016-04-23 13 views
-1

Raw フォルダからText(.txt)ファイルを読み込んでRecyclerviewアイテムを作成しています.10個のタイトルを持っています。インテントの匿名バグ

最初のタイトルをクリックすると、次のアクティビティのインテント(インテントは値を持つ)に関連するデータが表示されます。

ただし、最初のタイトル以外のRecyclerViewItemをクリックすると、次のアクティビティが開きますが、それぞれのデータは次のアクティビティに渡されません。

しかし、アダプタクラスでは、クリックしながらタイトルを取得できました。

でも、私はリストビューを使用して試してみましたが、何も働いていない...

ここでは私のコードです:

アダプタテキストOnClickListener:

holder.txtSong.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 

       TextView txtView = (TextView) view.findViewById(R.id.textView); 
       String forecast = (String) txtView.getText(); 
       Log.e("Position", String.valueOf(position)); 
       Log.e("Position..1",forecast); 

       Intent i = new Intent(view.getContext(), MainActivity.class); 
       i.putExtra(Intent.EXTRA_TEXT, forecast); 
       view.getContext().startActivity(i); 
      } 
     }); 

MainActivity:

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.song_list_item); 
     context = this; 

     pref = this.context.getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE); 

     TextView textView = (TextView) findViewById(R.id.textView); 
     Intent i = getIntent(); 
     String Song = i.getExtras().getString(Intent.EXTRA_TEXT); 

     try { 
      InputStream inputstream = getResources().getAssets().open(Song + ".txt"); 
      BufferedReader reader = new BufferedReader(new InputStreamReader(inputstream)); 

      String m = reader.toString(); 
      StringBuilder total = new StringBuilder(); 
      String line; 
      while ((line = reader.readLine()) != null) { 
       total.append(line); 
      } 
      m = total.toString(); 

      textView.setText(m); 
      textView.setTextColor(Color.BLACK); 

     } catch (IOException ex) { 
      System.out.println("Error" + ex); 
     } 
} 

あなたの答えはもっと評価されて...

+0

あなたはMainActivityクラスを投稿できますか? –

+0

'' i.putExtra( "Title"、forecast); 'と' String Song = i.getExtras()。getString( "Title"); ' –

+0

のような名前で試してください。以前と同じですが、私の場合は何も働いていませんでした。 @MD –

答えて

1

だけ

Intent i = getIntent(); 
String Song = i.getStringExtra(Intent.EXTRA_TEXT); 

が供給するために

Intent intent=new Intent(view.getContext(), MainActivity.class); 
intent.i.putExtra(Intent.EXTRA_TEXT, forecast); 

を試してみてください(getExtrasを削除してみてください)。使用方法getStringExtra();

+0

申し訳ありません。 –