2017-09-23 95 views
0

你好我有getSharedPreferences無法解決,我搜索很多答案,但任何解決這個問題。 如何在onclick iside ViewHolder中實現getSharedPreferences?Android - getSharedPreferences無法解析

MyHolder.class

public class MyHolder extends RecyclerView.ViewHolder { 
 

 
    TextView nametxt; 
 
    ImageView img; 
 
    TextView url; 
 
    TextView channel; 
 
    Context c; 
 

 

 
    public MyHolder(View itemView) { 
 
     super(itemView); 
 

 

 
     nametxt= (TextView) itemView.findViewById(R.id.nameTxt); 
 
     img= (ImageView) itemView.findViewById(R.id.movieImage); 
 
     url= (TextView) itemView.findViewById(R.id.urltxt); 
 
     channel= (TextView) itemView.findViewById(R.id.channel); 
 
     itemView.setOnClickListener(new View.OnClickListener() { 
 
      @Override public void onClick(View v) { 
 

 
       Intent intent = new Intent(v.getContext(), VideoPlayerActivity.class); 
 
       SharedPreferences prefs = getSharedPreferences("My_Prefs", MODE_PRIVATE); 
 
       String user = prefs.getString("user", ""); 
 

 
       String urls= url.getText().toString()+user+user+channel.getText().toString(); 
 
       intent.putExtra("urls", urls); 
 

 

 
       v.getContext().startActivity(intent); 
 

 
      } 
 
     }); 
 

 

 

 
    } 
 

 

 

 

 
}

+1

使用'context.getSharedPreferences context (「My_Prefs」,MODE_PRIVATE);' – akhilesh0707

回答

0

更改此設置: -

SharedPreferences prefs = getSharedPreferences("My_Prefs", MODE_PRIVATE); 

這樣: -

SharedPreferences prefs = v.getContext().getSharedPreferences("My_Prefs", MODE_PRIVATE); 
+0

如何在'ViewHolder'子類中使用'getActivity'方法 - 是不是'v.getContext()'? –

+0

我改變,但有錯誤無法解決getActivity –

+2

@KevinDanielGómezHalyburton從akhilesh0707閱讀新的答案,它有正確的解決方案,根據我的評論。 –

1

,而不是這個

SharedPreferences prefs = getSharedPreferences("My_Prefs", MODE_PRIVATE); 

試試這個使用context,你可以從你的觀點是v

SharedPreferences prefs = v.getContext().getSharedPreferences("My_Prefs", MODE_PRIVATE); 
0

您可以訪問共享從上下文的喜好和您可以訪問上下文v.getContext