2015-09-22 3 views
-1

Я изучаю, как разрабатывать приложения для Android в java. Я сделал свой собственный ArrayAdapter. В своем методе getView я хочу изменить строку, используемую TextView. Я хочу получить эту строку из SharedPreferences.Android SharedPreferences getString - обязательная строка, найдена java.lang.String

Код находится в нижней части сообщения.

AndroidStudio говорит мне, что есть ошибка в этой строке:

String description = prefs.getString(title + "description", "missing description"); 

Incompatible types. Required: String, Found: java.lang.String

Насколько я знаю, эти вещи, одно и то же. Из-за этой ошибки я не могу запустить свою программу. Как я могу избавиться от него?


public class NiceAdapter<String> extends ArrayAdapter<String> { 

    private SharedPreferences prefs; 
    private final SharedPreferences.Editor editor; 
    private ArrayList<String> items; 

    public NiceAdapter(Context context, int resource, int textViewResourceId, ArrayList<String> passedItems) { 
     super(context, resource, textViewResourceId, passedItems); 

     items = passedItems; 
     prefs = context.getSharedPreferences("NiceListPrefs", ListActivity.MODE_PRIVATE); 
     editor = prefs.edit(); 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     convertView = super.getView(position,convertView,parent); 

     TextView titleView = (TextView)convertView.findViewById(R.id.title); 
     TextView descriptionView = (TextView)convertView.findViewById(R.id.description); 

     String title = items.get(position); 
     titleView.setText(title.toString()); 

     String description = prefs.getString(title + "description", "missing description"); 
     descriptionView.setText(description); 

     return convertView; 
    } 
} 
+2

любой шанс вы определили класс с именем 'String'? – njzk2

+0

как вы объявили свой класс? 'public class MyClass extends ArrayAdapter {'? – Blackbelt

+1

Как и где вы объявили SharedPreference? –

ответ

2

Изменить

public class NiceAdapter<String> extends ArrayAdapter<String> { 

с

public class NiceAdapter extends ArrayAdapter<String> { 

С NiceAdapter<String> вы определяете общий тип, который называется строка, которая является не то, что SharedPreferences.getString ожидает

Смежные вопросы