WY18287465964 2022-05-02 17:28 采纳率: 80%
浏览 24
已结题

为什么单独的模块可以运行,但是将两个合起来就会出现问题呢?

我制作了一个购物商城案例,想实现加减功能,但是有加减的购物商城能运行,单独的加减框也能运行,一旦两个合在一起就会出问题,代码不报红,但是在真机上运行会闪退

以下为activity-main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="购物商城"
        android:textSize="25dp"
        android:textColor="#FFFF66"
        android:background="#FFCCCC"
        android:gravity="center"/>

    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:scrollbars="vertical">
    </ListView>

</LinearLayout>

list-layout.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="10dp">

    <ImageView
        android:id="@+id/iv"
        android:layout_width="150dp"
        android:layout_height="120dp" />

    <LinearLayout
        android:id="@+id/linear1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:id="@+id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="桌子"
            android:textSize="20sp"
            android:textColor="#000000"
            android:layout_marginLeft="150dp"/>

        <Button
            android:id="@+id/btnDecrease"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:gravity="center"
            android:text="-"
            android:textSize="16sp"/>

        <TextView
            android:id="@+id/etAmount"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:minWidth="60dp"
            android:layout_weight="1.5"
            android:gravity="center"
            android:text="1"/>

        <Button
            android:id="@+id/btnIncrease"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:gravity="center"
            android:text="+"
            android:textSize="16sp"/>

    </LinearLayout>

    <LinearLayout
        android:id="@+id/linear2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_below="@id/linear1">

        <TextView
            android:id="@+id/text1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="价格:"
            android:layout_marginLeft="150dp"
            android:textSize="20dp" />

        <TextView
            android:id="@+id/price"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="1000元"
            android:textSize="20dp"/>

        <Button
            android:id="@+id/delete"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:text="删"
            android:textSize="10dp"
            android:layout_marginLeft="15dp"/>

    </LinearLayout>

</RelativeLayout>

MainActivity.java

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    private int amount = 1;     //数量

    private TextView etAmount;
    private Button btnDecrease;
    private Button btnIncrease;
    private String[] titles = {"桌子", "苹果", "蛋糕", "线衣", "猕猴桃", "围巾"};
    private String[] prices = {"1800元", "10元/kg", "300元", "350元", "10元/kg", "280元"};
    private int[] icons = {R.drawable.zz, R.drawable.pingguo, R.drawable.bg, R.drawable.my,
            R.drawable.mht, R.drawable.wj};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ListView listView = findViewById(R.id.listView);
        MyBaseAdapter mAdapter = new MyBaseAdapter();
        listView.setAdapter(mAdapter);
        etAmount = findViewById(R.id.etAmount);
        btnDecrease = findViewById(R.id.btnDecrease);
        btnIncrease = findViewById(R.id.btnIncrease);

       btnDecrease.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (amount > 1)
                    amount--;
                else
                    Toast.makeText(MainActivity.this,"傻逼",Toast.LENGTH_SHORT).show();

                etAmount.setText(String.valueOf(amount));

            }
        });

        //设置‘+’号按键点击事件
        btnIncrease.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                amount++;
                etAmount.setText(String.valueOf(amount));
            }
        });
    }

        class MyBaseAdapter extends BaseAdapter {
            @Override
            public int getCount() {
                return titles.length;
            }

            @Override
            public Object getItem(int i) {
                return titles[i];
            }

            @Override
            public long getItemId(int i) {
                return i;
            }

            @Override
            public View getView(int position, View convertView, ViewGroup parent) {//获取item中的View视图
                ViewHolder holder;
                if (convertView == null) {
                    convertView = View.inflate(MainActivity.this, R.layout.list_item, null);
                    holder = new ViewHolder();
                    holder.title = convertView.findViewById(R.id.title);
                    holder.price = convertView.findViewById(R.id.price);
                    holder.iv = convertView.findViewById(R.id.iv);
                    convertView.setTag(holder);
                } else {
                    holder = (ViewHolder) convertView.getTag();
                }
                holder.title.setText(titles[position]);
                holder.price.setText(prices[position]);
                holder.iv.setImageResource(icons[position]);
                return convertView;
            }
        }
    }

ViewHolder.java

import android.widget.ImageView;
import android.widget.TextView;

public class ViewHolder {
    TextView title;
    TextView price;
    ImageView iv;
}

  • 写回答

1条回答 默认 最新

  • 不会写代码的猴子 Android领域优质创作者 2022-05-05 10:56
    关注

    你在logcat中看一下闪退日志

    img

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

报告相同问题?

问题事件

  • 系统已结题 5月17日
  • 已采纳回答 5月9日
  • 创建了问题 5月2日

悬赏问题

  • ¥15 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!