当我运行我的项目时,消息控制台中没有错误但它一直崩溃。我无法发现原因。我试图通过一些类似的问题并确实实施了给定的解决方案,但它仍然没有帮助我。这是我的代码。
package com.example.omar.quakereport;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.util.ArrayList;
public class EarthquakeActivity extends AppCompatActivity {
ListView earthquakeListView;
ArrayList<String> earthquakes;
ArrayAdapter<String> adapter;
// public static final String LOG_TAG = EarthquakeActivity.class.getName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.earthquake_activity);
// Create a fake list of earthquake locations.
earthquakes = new ArrayList<>();
earthquakes.add("San Francisco");
earthquakes.add("London");
earthquakes.add("Tokyo");
earthquakes.add("Mexico City");
earthquakes.add("Moscow");
earthquakes.add("Rio de Janeiro");
earthquakes.add("Paris");
// Find a reference to the {@link ListView} in the layout
earthquakeListView = (ListView) findViewById(R.id.list);
// Create a new {@link ArrayAdapter} of earthquakes
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, earthquakes);
// Set the adapter on the {@link ListView}
// so the list can be populated in the user interface
earthquakeListView.setAdapter(adapter);
}
}
这是吸收我的吸气剂的课程:
package com.example.omar.quakereport;
public class Earthquakes {
private String mMagnitude;
private String mLocation;
private String mDate;
public Earthquakes(String magnitude, String location, String date){
mMagnitude = magnitude;
mLocation = location;
mDate = date;
}
public String getMagnitude(){
return mMagnitude;
}
public String getLocation(){
return mLocation;
}
public String getDate(){
return mDate;
}
这是我的活动xml:
<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/list"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
这是我的列表项xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
</LinearLayout>
答案 0 :(得分:0)
ListViews没有orientation属性。
您应该将ListView包装在相对/线性/框架布局
中然后,您需要使用ArrayAdapter<Earthquake> adapter;
(see here)(并使您的类名称为单数)。或者,您需要在地震类上实现toString()
,因为这是ArrayAdapter<String>
用于显示数据的内容。
然后编辑项目布局以添加TextViews以显示和EarthQuake数据,最后使用地震项目xml布局,而不是android.R.layout.simple_list_item_1
拥有该适配器后,您实际上可以执行此操作来添加和显示数据
adapter.add(new Earthquake("magnitude", "location", "date"));