Android 从mysql获取数据并显示在listview上

Android 从mysql获取数据并显示在listview上,android,mysql,listview,retrofit2,Android,Mysql,Listview,Retrofit2,我试图在服务器端使用改进版2和PHP从MySQL获取数据。在textview上显示是没有问题的,然后我尝试在listview上显示,但我总是看到错误。有人能帮我修一下吗?你能解释一下如何使用列表视图和阵列适配器 main活动 public类MainActivity扩展了AppCompatActivity{ EditText editName,editAddress; //文本查看文本详细信息; 按钮btnGetData、BTN插入数据; 私人对话; 字符串[]详细信息={“asd”}; 列表视图

我试图在服务器端使用改进版2和PHP从MySQL获取数据。在
textview
上显示是没有问题的,然后我尝试在
listview
上显示,但我总是看到错误。有人能帮我修一下吗?你能解释一下如何使用
列表视图
阵列适配器

main活动
public类MainActivity扩展了AppCompatActivity{
EditText editName,editAddress;
//文本查看文本详细信息;
按钮btnGetData、BTN插入数据;
私人对话;
字符串[]详细信息={“asd”};
列表视图列表;
阵列自适应加法;
//ArrayAdapter add=新的ArrayAdapter(this,R.layout.datalist,details);
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//textDetails=(TextView)findViewById(R.id.TextView);
editName=(EditText)findViewById(R.id.editName);
editAddress=(EditText)findViewById(R.id.editAddress);
btnGetData=(按钮)findViewById(R.id.btnGetData);
BTN插入数据=(按钮)findViewById(R.id.BTN插入);
pDialog=新建进度对话框(此对话框);
pDialog.setMessage(“请稍候…”);
pDialog.setCancelable(假);
getPeopleDetails();
add=新的ArrayAdapter(此,R.layout.datalist,详细信息);
//textDetails.setText(详细信息);
list=(ListView)findViewById(R.id.list);
list.setAdapter(添加);
btnGetData.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
getPeopleDetails();
}
});
btnisertdata.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
setStudentDetails();
}
});
}
私有void getPeopleDetails(){
showpDialog();
改装改装=新改装.Builder()
.baseUrl(“http://192.168.0.101/")
.addConverterFactory(GsonConverterFactory.create())
.build();
APIService=reformation.create(APIService.class);
Call Call=service.getPeopleDetails();
call.enqueue(新回调(){
@凌驾
公共void onResponse(调用、响应){
List students=response.body();
对于(int i=0;i}
字符串数组中的问题。在java n中,数组是一个容器对象,它包含一个固定数量的单一类型的值。这意味着您无法在初始化后更改其长度,就像您在方法中尝试做的那样。 以你为例

String[] details = {"asd"}; // details.length is 1
您必须在
onResponse
方法中初始化数组,如下所示

  @Override
        public void onResponse(Call<List<Student>> call, Response<List<Student>> response) {
            List<Student> students = response.body();
            details = new String[students.size()]; // here you know lenght of needed array

            for (int i = 0 ; i < students.size(); i++){
                String name = students.get(i).getName();
                String address = students.get(i).getAddress();
                details[i]="nama  : "+name;
            }
            // your code 
        }
@覆盖
公共void onResponse(调用、响应){
List students=response.body();
details=新字符串[students.size()];//这里您知道所需数组的长度
对于(int i=0;i
字符串数组中的问题。在java n中,数组是一个容器对象,它包含一个固定数量的单一类型的值。这意味着您无法在初始化后更改其长度,就像您在方法中尝试做的那样。 以你为例

String[] details = {"asd"}; // details.length is 1
您必须在
onResponse
方法中初始化数组,如下所示

  @Override
        public void onResponse(Call<List<Student>> call, Response<List<Student>> response) {
            List<Student> students = response.body();
            details = new String[students.size()]; // here you know lenght of needed array

            for (int i = 0 ; i < students.size(); i++){
                String name = students.get(i).getName();
                String address = students.get(i).getAddress();
                details[i]="nama  : "+name;
            }
            // your code 
        }
@覆盖
公共void onResponse(调用、响应){
List students=response.body();
details=新字符串[students.size()];//在这里