Android 从mysql获取数据并显示在listview上
我试图在服务器端使用改进版2和PHP从MySQL获取数据。在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”}; 列表视图
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()];//在这里