MQ.H 2023-01-04 19:08 采纳率: 66.7%
浏览 23
已结题

帮我看看这个列表页面为什么闪退(语言-java)

点击下面可以下载源码
简单说一下,就是我写了个列表页面,会闪退,大家帮忙看看为什么。我是按照这个软件一个人发的帖子,照抄的。不知道为什么错误,一下是相关代码
formula_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="80dp">

    <ImageView
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:id="@+id/formula_image"
        android:src="@drawable/oll1"/>

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="80dp">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Name"
            android:textSize="25sp"
            android:textColor="#FF000000"
            android:id="@+id/formula_name"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="detailed"
            android:id="@+id/formula_detailed"/>

    </LinearLayout>

</LinearLayout>

activity_main.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
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:background="#FF1785E3"
        android:gravity="center">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="公式集"
            android:textColor="#FF000000"
            android:textSize="25sp"/>

    </LinearLayout>

    <ListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/list_view"/>

</LinearLayout>

MainActivity.java

package com.mycompany.application;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ListView;
import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    ListView listView;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        listView = findViewById(R.id.list_view);
        
        List<addlist> formulalist = new ArrayList<>();
        
        for (int i = 0; i < 2 ; i++) {
            addlist oll1 = new addlist(R.drawable.oll1, "OLL1", "(RU'U')(R2'FRF')U2(R'FRF')");
            formulalist.add(oll1);
        }
        
        listadapter adapter=new listadapter(MainActivity.this, R.layout.formula_item, formulalist);
        listView.setAdapter(adapter);
    }
    
    
    
}


listadapter.java

package com.mycompany.application;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.List;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import android.widget.ArrayAdapter;
import androidx.annotation.NonNull;
import android.content.Context;

public class listadapter extends ArrayAdapter<addlist> {
    
    public listadapter(@NonNull Context context, int resource, @NonNull List<addlist> objects) {
        super(context, resource, objects);
    }
    
    @NonNull
    @Override
    public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
        addlist formula=getItem(position);//得到当前项的 Fruit 实例
        //为每一个子项加载设定的布局
        View view=LayoutInflater.from(getContext()).inflate(R.layout.formula_item, parent, false);
        //分别获取 image view 和 textview 的实例
        ImageView formulaimage = view.findViewById(R.id.formula_image);
        TextView formulaname = view.findViewById(R.id.formula_name);
        TextView formuladetailed = view.findViewById(R.id.formula_detailed);
        // 设置要显示的图片和文字
        formulaimage.setImageResource(formula.getImageID());
        formulaname.setText(formula.getName());
        formuladetailed.setText(formula.getDetailed());
        return view;
    }
    
}


addlist.java

package com.mycompany.application;

public class addlist {
    
    private int imageID;
    private String name;
    private String detailed;

    public int getImageID() {
        return imageID;
    }
    public String getName() {
        return name;
    }
    public String getDetailed() {
        return detailed;
    }
    public addlist(int imageID, String name, String detailed) {
        this.imageID = imageID;
        this.name = name;
        this.detailed = detailed;
    }
    
}


  • 写回答

1条回答 默认 最新

  • Halifax ‎ 2023-01-04 22:12
    关注

    你的 MainActivity 的 oncreate,没有在 super.oncreate 的下面调用 setContentView(R.layout.activity_main)。

    所以,你需要设置一下布局 setContentView,才能调用 findViewById

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月12日
  • 已采纳回答 1月4日
  • 专家修改了标签 1月4日
  • 创建了问题 1月4日

悬赏问题

  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效