Я работаю над этим некоторое время и не могу понять, почему я получаю несколько ошибок. Любая помощь будет принята с благодарностью. - Я создал класс и взятые строки из папки общих настроек и назначил их членам данных в классе. - Я создал пользовательский adpater, чтобы назначить эти элементы в listview с использованием линейных макетов и двух texviews в каждом макете. . Я получаю ошибку об идентификаторе, а также ошибку о невозможности использовать макет в качестве TextViewArrayAdapter требует, чтобы идентификатор ресурса был текстовым в списке. Android Studio
public class MainActivity extends AppCompatActivity {
private static final String GROCERIES = "items";
private EditText itemEditText;
private SharedPreferences savedItems;
private ArrayList<String> ITEMS;
private ArrayList<String> People;
private ArrayList<CustomObject> objectList;
private ArrayAdapter<CustomObject> adapter;
private TextView anchor;
//private ListView christList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView christList =(ListView) findViewById(R.id.listView);
savedItems = getSharedPreferences("items", MODE_PRIVATE);
People = new ArrayList<String>(savedItems.getAll().keySet());
Collections.sort(People, String.CASE_INSENSITIVE_ORDER);
objectList = new ArrayList<CustomObject>();
for (int i = 0; i < People.size(); i++){
String PersonName = People.get(i);
ITEMS =new ArrayList<String>(Arrays.asList(getItemList(this, PersonName)));
for (int j = 0; j < ITEMS.size(); j++){
CustomObject newObject = new CustomObject(ITEMS.get(j), PersonName);
objectList.add(newObject);
}
}
adapter = new ChristmasAdapter(this, R.layout.dual_list_item,R.id.item_name,R.id.family_member, objectList);
christList.setAdapter(adapter);
/* adapter = new ArrayAdapter<String>(this, R.layout.list_item, ITEMS);
christList.setAdapter(adapter);
adapter.notifyDataSetChanged();
*/
ImageButton addButton =
(ImageButton) findViewById(R.id.add_button);
addButton.setOnClickListener(addButtonListener);
//christList.setOnItemClickListener(itemClickListener);
// christList.setOnItemLongClickListener(itemLongClickListener);
}
public static String[] getItemList(Activity activity,String Key){
String ItemsList = getStringsFromPreferences(activity, null, Key);
return convertStringToArray(ItemsList);
}
private static String getStringsFromPreferences(Activity activity, String nick, String key){
SharedPreferences sharedPreferences = activity.getPreferences(Activity.MODE_PRIVATE);
String temp = sharedPreferences.getString(key, "");
return temp;
}
private static String[] convertStringToArray(String str){
String[] arr = str.split(",");
return arr;
}
public void sendMessage(View view){
Intent intent = new Intent(this,Main2Activity.class);
startActivity(intent);
}
public class CustomObject {
private String Item;
private String FamilyMem;
public CustomObject(String prop1, String prop2) {
this.Item = prop1;
this.FamilyMem = prop2;
}
public String getItem1() {
return Item ;
}
public String getFamilyMem() {
return FamilyMem;
}
};
class ChristmasAdapter extends ArrayAdapter <CustomObject>{
private LayoutInflater layoutinflater;
public ChristmasAdapter(Context context, int id, int itemId,
int famId,
ArrayList<CustomObject> objects){
super(context, id, objects);
layoutinflater = LayoutInflater.from(context);
}
@Override
public View getView(int position, View convertView, ViewGroup parent){
View view = layoutinflater.inflate(R.layout.dual_list_item, null);
CustomObject newItem = getItem(position);
TextView Item =(TextView) view.findViewById(R.id.item_name);
TextView Fam = (TextView) view.findViewById(R.id.family_member);
Item.setText(newItem.getItem1());
Fam.setText(newItem.getFamilyMem());
return super.getView(position,convertView,parent);
}
}
исключение:
java.lang.IllegalStateException: ArrayAdapter requires the resource ID to be a TextView
at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:386)
Caused by: java.lang.ClassCastException: android.widget.LinearLayout cannot be cast to android.widget.TextView
извините за плохое формирование. Это мой первый пост. –
опубликуйте свой xml, а также ваш полный логарифм – Anjali