【发布时间】:2019-04-13 03:38:28
【问题描述】:
我正在创建一个自定义适配器MyAdapter 并膨胀一个ListView listView 以显示一个字符串数组data。使用 getActivity() 方法初始化 MyAdapter 时出现错误,如下所示:
public class MainActivity extends AppCompatActivity {
private ListView listView;
private String[] data = {"Sanskrit", "Bhojpuri", "Newari", "Magar",
"Gurung", "English", "Maithili", "Tamil", "Hindi",
"French", "German", "Russian", "Chinese"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = findViewById(R.id.list_view);
MyAdapter adapter = new MyAdapter(getActivity(), data);
listView.setAdapter(adapter);
}
}
class MyAdapter extends ArrayAdapter {
String[] data;
public MyAdapter(Context context, int res, String[] data) {
super(context,res);
this.data = data;
}
@NonNull
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) getContext().
getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row = inflater.inflate(R.layout.custom_list_view, parent, false);
TextView textView = row.findViewById(R.id.textView);
textView.setText(data[position]);
return row;
}
}
任何帮助将不胜感激。
【问题讨论】:
-
请分享stacktrace错误信息。
-
@JeelVankhede 没有堆栈跟踪。这是一个编译时错误。
-
请不要在问题正文或标题中使用“已解决”。改为发布自我答案或接受有助于您解决问题的答案之一。
-
@Shashanth 我在答案中添加了解决方案。这是我的第一篇文章。所以对它一无所知。感谢您的编辑。
标签: java android list android-listview android-arrayadapter