我是android的新手,我试着在listview上显示一个数组 这是我设置listview的xml:
<ListView
android:id="@+id/lv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
这是MainActivity.java:
import android.app.Activity;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends Activity {
ListView listView ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView lv = (ListView) findViewById(R.id.lv);
String[] values = new String[] { "Elemento 1",
"Elemento 2",
"Elemento 3",
"Elemento 4",
"Elemento 5",
"Elemento 6",
"Elemento 7",
"Elemento 8"
};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.id.text1, values);
lv.setAdapter(adapter);
if (savedInstanceState == null) {
getFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
public static class PlaceholderFragment extends Fragment {
public PlaceholderFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container,
false);
return rootView;
}
}
}
所以,问题是,一切都很顺利,直到我写道:
lv.setAdapter(adapter);
我运行应用程序,它只是崩溃,App停止了。当我评论这部分代码时,它运行但显然没有显示任何内容。我在平板电脑上运行它,它在ICS上
提前感谢。
答案 0 :(得分:1)
替换此行:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.id.text1, values);
与
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, android.R.id.text1, values);
答案 1 :(得分:1)
我很抱歉,感谢Dev Carlsberg。我还没修复它,我没有意识到我将listview放在我的fragment_main.xml文件中。我有:
setContentView(R.layout.activity_main);
这意味着列表视图应该是activity_main.xml
的正确布局,所以我只是删除:
<ListView android:id="@+id/lv" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
来自fragment_main.xml
文件并将其放入activity_main.xml
并完美运行。
再次感谢。