Android 为什么我的程序没有运行?
下面是ListFragment的程序。它不显示任何错误,但不运行。错误日志显示消息Android 为什么我的程序没有运行?,android,Android,下面是ListFragment的程序。它不显示任何错误,但不运行。错误日志显示消息致命异常:Main…当我在emulator上打开时,它显示“不幸的是listfragment2已停止” Frament1.java代码 package com.example.listfragmentexample2; import android.annotation.TargetApi; import android.app.ListFragment; import android.os.Build; imp
致命异常:Main…
当我在emulator上打开时,它显示“不幸的是listfragment2已停止”
Frament1.java代码
package com.example.listfragmentexample2;
import android.annotation.TargetApi;
import android.app.ListFragment;
import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class Fragment1 extends ListFragment {
String[] presidents = {
"Dwight D. Eisenhower",
"John F. Kennedy",
"Lyndon B. Johnson",
"Richard Nixon",
"Gerald Ford",
"Jimmy Carter",
"Ronald Reagan",
"George H. W. Bush",
"Bill Clinton",
"George W. Bush",
"Barack Obama"
};
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment1, container, false);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setListAdapter(new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, presidents));
}
public void onListItemClick(ListView parent, View v,
int position, long id)
{
Toast.makeText(getActivity(),
"You have selected " + presidents[position],
Toast.LENGTH_SHORT).show();
}
}
您需要在onCreateView方法之后设置适配器
public class Fragment1 extends ListFragment {
String[] presidents = {
"Dwight D. Eisenhower",
"John F. Kennedy",
"Lyndon B. Johnson",
"Richard Nixon",
"Gerald Ford",
"Jimmy Carter",
"Ronald Reagan",
"George H. W. Bush",
"Bill Clinton",
"George W. Bush",
"Barack Obama"
};
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment1, container, false);
}
@Override
protected void onStart() {
setListAdapter(new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, presidents));
super.onStart();
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
public void onListItemClick(ListView parent, View v,
int position, long id)
{
Toast.makeText(getActivity(),
"You have selected " + presidents[position],
Toast.LENGTH_SHORT).show();
}
}
公共类Fragment1扩展了ListFragment{
字符串[]总统={
“德怀特·D·艾森豪威尔”,
“约翰·F·肯尼迪”,
“林登·B·约翰逊”,
“理查德·尼克松”,
“杰拉尔德·福特”,
“吉米·卡特”,
“罗纳德·里根”,
“乔治·H·W·布什”,
“比尔·克林顿”,
“乔治·W·布什”,
“巴拉克·奥巴马”
};
@凌驾
创建视图上的公共视图(更平坦的充气机,
视图组容器,捆绑包savedInstanceState){
返回充气机。充气(R.layout.fragment1,容器,假);
}
@凌驾
受保护的void onStart(){
setListAdapter(新的ArrayAdapter(getActivity()),
android.R.layout.simple_list_item_1,总统);
super.onStart();
}
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
}
public void onListItemClick(列表视图父视图、视图v、,
内部位置,长id)
{
Toast.makeText(getActivity(),
“您已选择”+总裁[职位],
吐司。长度(短)。show();
}
}
我想你忘了添加setContentView(R.layout.activity\u main)在onCreate()
方法中的code>
Caused by: java.lang.ClassNotFoundException: com.example.listfragmentexample2.MainActivity
确保清单文件和代码中的包和类名一致
Manifest说应该有一个名为com.example.listfragmentexample2.MainActivity
的类,但在二进制软件包中找不到它。如果你确定你有它,清理和重建的情况下有一个构建故障之前
更新问题的更新答案:
com.example.listfragmentexample2.Fragment1 cannot be cast to android.app.Activity
您的片段1
在清单中声明为活动
,但它不扩展活动
。只有活动应列为清单中的活动。碎片需要一个活动来承载它们。并格式化代码(如果可能):它不显示任何错误
与错误日志显示消息致命异常:Main…
和在模拟器上显示“不幸的listfragment2已停止”
@ArtooDetoo代码格式已完成:)@Kedarnath:太好了+1@Artoo它没有显示任何错误,但显示异常…您在onCreate中调用setAdater方法,因为这是一个片段,所以需要在onCreateView之后或内部调用。读取片段生命周期
public class Fragment1 extends ListFragment {
String[] presidents = {
"Dwight D. Eisenhower",
"John F. Kennedy",
"Lyndon B. Johnson",
"Richard Nixon",
"Gerald Ford",
"Jimmy Carter",
"Ronald Reagan",
"George H. W. Bush",
"Bill Clinton",
"George W. Bush",
"Barack Obama"
};
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment1, container, false);
}
@Override
protected void onStart() {
setListAdapter(new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, presidents));
super.onStart();
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
public void onListItemClick(ListView parent, View v,
int position, long id)
{
Toast.makeText(getActivity(),
"You have selected " + presidents[position],
Toast.LENGTH_SHORT).show();
}
}
Caused by: java.lang.ClassNotFoundException: com.example.listfragmentexample2.MainActivity
com.example.listfragmentexample2.Fragment1 cannot be cast to android.app.Activity