fragment中点击ListView跳转至其他activity程序闪退

CptRoger 2018-03-20 11:47:46
毕设选了做个app,指导老师也不会只能自己自学- -。。大概就是mainactivity中的fragment点击ListView跳转到其他activity里,点击后模拟器中程序就stop了,注释intent用吐丝是可以显示吐丝的,之前也试过findbyid闪退那时候是空指针的原因,现在不知道啥情况,求大佬帮看看可以加qq指导下- -
package com.example.enz.viewpagertext;

import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.ListFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.SimpleAdapter;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Fragment01 extends ListFragment{
private ListView list;
private SimpleAdapter adapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//inflate()的作用就是将一个用xml定义的布局文件查找出来.这里用来引用xml布局
//与findViewById()的区别---inflate是加载一个布局文件,而findViewById则是从布局文件中查找一个控件。
View view = inflater.inflate(R.layout.fragment01,container,false);
list = (ListView) view.findViewById(android.R.id.list);
return view;
}

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
final String[] listItem = {
"张三通下水道", "李四通下水道", "王五通下水道", "张三修电脑", "李四修电脑",};
final String[] listItem_2 = {
"400", "400", "400", "400", "400",};
final int[] iconItem = {
R.mipmap.ic_launcher, R.mipmap.ic_launcher, R.mipmap.ic_launcher, R.mipmap.ic_launcher, R.mipmap.ic_launcher ,};
adapter = new SimpleAdapter(
getActivity(), //context:上下文(当前的Activity)
getData(listItem,listItem_2, iconItem), //data:一个嵌套Map集合类型的list集合数据源
R.layout.fragment01_item, //resource:ListView的布局文件
new String[] { "name","price", "icon" }, //from:Map中的键名
new int[] { R.id.work_text01,R.id.work_text02, R.id.work_img }); //to:布局文件中相匹配的控件的id
setListAdapter(adapter);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
// Toast.makeText(getActivity(), "点击了"+i, Toast.LENGTH_SHORT).show();
Bundle b = new Bundle();
b.putString("listitem", listItem[i]);
Intent intent = new Intent(getActivity(),workdetailactivity.class);
intent.putExtras(b);
startActivity(intent);

}
});
}

// @Override
// public void onCreate(@Nullable Bundle savedInstanceState) {
// super.onCreate(savedInstanceState);
// String[] listItem = {
// "张三通下水道", "李四通下水道", "王五通下水道", "张三修电脑", "李四修电脑",};
// String[] listItem_2 = {
// "400", "400", "400", "400", "400",};
// int[] iconItem = {
// R.mipmap.ic_launcher, R.mipmap.ic_launcher, R.mipmap.ic_launcher, R.mipmap.ic_launcher, R.mipmap.ic_launcher ,};
// adapter = new SimpleAdapter(
// getActivity(), //context:上下文(当前的Activity)
// getData(listItem,listItem_2, iconItem), //data:一个嵌套Map集合类型的list集合数据源
// R.layout.fragment01_item, //resource:ListView的布局文件
// new String[] { "name","price", "icon" }, //from:Map中的键名
// new int[] { R.id.work_text01,R.id.work_text02, R.id.work_img }); //to:布局文件中相匹配的控件的id
// setListAdapter(adapter);
// }

private List<? extends Map<String,?>> getData(String[] listItem,String[] listItem_2, int[] iconItem) {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
for (int i = 0; i < 5; i++) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("name", listItem[i]);
map.put("price", listItem_2[i]);
map.put("icon", iconItem[i]);
list.add(map);
}
return list;
}
}

...全文
749 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
CptRoger 2018-03-20
  • 打赏
  • 举报
回复
链接:https://pan.baidu.com/s/1NmjgHIsYDqm6EFHyHZ-XsQ 密码:0gut 这是源码
CptRoger 2018-03-20
  • 打赏
  • 举报
回复
引用 5 楼 qq_33572282 的回复:
[quote=引用 4 楼 jklwan 的回复:] 在你的AndroidManifest.xml注册workdetailactivity

……
           <activity android:name=".workdetailactivity"/>
    </application>

</manifest>
卧槽谢谢大神注册了就可以了,这个给遗忘掉了。但是跳转过去的是个空白页面是啥子情况??[/quote]找到问题了,是创建activity 的时候 通过android studio 的代码补全 误将 onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {} 方法 当作 onCreate(Bundle savedInstanceState) 方法 引用:http://blog.csdn.net/a06963938/article/details/53609753
CptRoger 2018-03-20
  • 打赏
  • 举报
回复
引用 4 楼 jklwan 的回复:
在你的AndroidManifest.xml注册workdetailactivity

……
           <activity android:name=".workdetailactivity"/>
    </application>

</manifest>
卧槽谢谢大神注册了就可以了,这个给遗忘掉了。但是跳转过去的是个空白页面是啥子情况??
jklwan 2018-03-20
  • 打赏
  • 举报
回复
在你的AndroidManifest.xml注册workdetailactivity

……
           <activity android:name=".workdetailactivity"/>
    </application>

</manifest>
CptRoger 2018-03-20
  • 打赏
  • 举报
回复
引用 2 楼 cxz003 的回复:
getActivity().startActivity()
还是一样点击跳转就stop
  • 打赏
  • 举报
回复
getActivity().startActivity()

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧