所以我已经对这个主题进行了研究,并且有很多方法可以为数组中的字符串做一个收藏。用户点击一个最喜欢的按钮来收藏将在阵列中的特定显示字符串。我在这个类中提出了一个load数组和save数组方法。我在loadArray上收到我的错误(收藏夹,这个);和saveArray(收藏夹,“收藏夹”,这个);它似乎没有将loadArray或saveArray识别为方法。非常感谢!
public class Base extends Activity implements OnClickListener {
Button home, search, moreapps, fav;
TextView display;
String [] favorites;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(starting.rt.R.layout.relationship);
home = (Button) findViewById(starting.rt.R.id.Home);
search = (Button) findViewById(starting.rt.R.id.search);
moreapps = (Button) findViewById(starting.rt.R.id.moreapps);
fav = (Button) findViewById(starting.rt.R.id.fav);
display = (TextView) findViewById(starting.rt.R.id.tvResults);
fav.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
display.getText();
loadArray(favorites, this);
favorites = Arrays.copyOf(favorites, favorites.length+1);
favorites[favorites.length]=display.getText().toString();
saveArray(favorites, "favorites", this);
}
});
}
public String[] loadArray(String arrayName, Context mContext) {
SharedPreferences prefs = mContext.getSharedPreferences("preferencename", 0);
int size = prefs.getInt(arrayName + "_size", 0);
String array[] = new String[size];
for(int i=0;i<size;i++)
array[i] = prefs.getString(arrayName + "_" + i, null);
return array;
}
public boolean saveArray(String[] array, String arrayName, Context mContext) {
SharedPreferences prefs = mContext.getSharedPreferences("preferencename", 0);
SharedPreferences.Editor editor = prefs.edit();
editor.putInt(arrayName +"_size", array.length);
for(int i=0;i<array.length;i++)
editor.putString(arrayName + "_" + i, array[i]);
return editor.commit();
}
public void onClick(View arg0) {
// TODO Auto-generated method stub
}
}
答案 0 :(得分:1)
那是因为该范围内的此是 onClickListener(),您可以使用 Base.this 来引用 Activity < / em>(上下文)。
我不建议使用 getApplicationContext() ,文档说:
这通常只应在需要Context的情况下使用 生命周期与当前上下文分开,与之相关 过程的生命周期而不是当前的组件。
答案 1 :(得分:1)
您正在致电
loadArray(String[], View.OnClickListener)
而不是
loadarray(String, Context)
“favorites”是一个字符串数组,而不是字符串
“this”指的是View.OnclickListener而不是Context
您可以使用“getApplicationContext()”
获取上下文