java - 我需要做一个加入购物车的功能(饮料应用程序)

标签 java android nullpointerexception

当我加入购物购物车后点击购物列表时,我不知道发生了什么

public class Shoppingtest extends AppCompatActivity {

private TextView drink_name;
private TextView size;
private TextView sweet;
private TextView feeding;
private TextView count;
private TextView price;
private TextView ice;
private ListView listview;
MyAdapter adapter = null;

ArrayList<String> drinkNamearry = new ArrayList<String>();
ArrayList<String> sizearry = new ArrayList<String>();
ArrayList<String> sweetarry = new ArrayList<String>();
ArrayList<String> icearry = new ArrayList<String>();
private String drinkNamelist, sizelist, sweetlist, icelist;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_template_shoplist);

    this.setTitle("Order Details");

    drink_name = (TextView) findViewById(R.id.drink_name);
    size = (TextView) findViewById(R.id.size);
    sweet = (TextView) findViewById(R.id.sweet);
    feeding = (TextView) findViewById(R.id.feeding);
    count = (TextView) findViewById(R.id.count);
    price = (TextView) findViewById(R.id.price);
    ice = (TextView) findViewById(R.id.ice);
    listview = (ListView) findViewById(R.id.listview);


    SharedPreferences spf = getSharedPreferences("drink", 0);
    drinkNamelist = spf.getString("drinkNamelist", "");
    sizelist = spf.getString("sizelist", "");
    sweetlist = spf.getString("sweetlist", "");
    icelist = spf.getString("icelist", "");
    drinkNamearry = new ArrayList<String>();
    sizearry = new ArrayList<String>();
    sweetarry = new ArrayList<String>();
    icearry = new ArrayList<String>();
    Collections.addAll(drinkNamearry, drinkNamelist.split(","));
    Collections.addAll(sizearry, sizelist.split(","));
    Collections.addAll(sweetarry, sweetlist.split(","));
    Collections.addAll(icearry, icelist.split(","));
    Log.d("drinkNamelist", drinkNamelist);
    Log.d("sizelist", sizelist);
    Log.d("sweetlist", sweetlist);
    Log.d("icelist", icelist);
    Log.d("id", "2 "+drinkNamearry.size() );

    adapter = new MyAdapter(this);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == 200) {
        SharedPreferences spf = getSharedPreferences("drink", 0);
        drinkNamelist = spf.getString("drinkNamelist", "");
        sizelist = spf.getString("sizelist", "");
        sweetlist = spf.getString("sweetlist", "");
        icelist = spf.getString("icelist", "");
        drinkNamearry = new ArrayList<String>();
        sizearry = new ArrayList<String>();
        sweetarry = new ArrayList<String>();
        icearry = new ArrayList<String>();
        Collections.addAll(drinkNamearry, drinkNamelist.split(","));
        Collections.addAll(sizearry, sizelist.split(","));
        Collections.addAll(sweetarry, sweetlist.split(","));
        Collections.addAll(icearry, icelist.split(","));
        Log.d("drinkNamelist", drinkNamelist);
        Log.d("sizelist", sizelist);
        Log.d("sweetlist", sweetlist);
        Log.d("icelist", icelist);
        Log.d("id", "2 "+drinkNamearry.size() );
        adapter = new MyAdapter(this);

        listview.setAdapter(adapter);
    }
}

public class MyAdapter extends BaseAdapter {
    private LayoutInflater myInflater;

    public MyAdapter(Context c) {
        myInflater = LayoutInflater.from(c);
    }

    public int getCount() {
        return drinkNamearry.size();
    }

    public Object getItem(int position) {
        return drinkNamearry.get(position);
    }

    public long getItemId(int position) {
        return position;
    }

    public View getView(int position, View convertView, ViewGroup parent) {
        convertView = myInflater.inflate(R.layout.activity_template_shopping, null);
        drink_name = (TextView) findViewById(R.id.drink_name);
        size = (TextView) findViewById(R.id.size);
        sweet = (TextView) findViewById(R.id.sweet);
        feeding = (TextView) findViewById(R.id.feeding);
        count = (TextView) findViewById(R.id.count);
        price = (TextView) findViewById(R.id.price);
        ice = (TextView) findViewById(R.id.ice);

        if (drinkNamearry.size() == 0) {
            drink_name.setText("");
            size.setText("");
            sweet.setText("");
            ice.setText("");
        } else {
            drink_name.setText(drinkNamearry.get(position));
            size.setText(sizearry.get(position));
            sweet.setText(sweetarry.get(position));
            ice.setText(icearry.get(position));
        }
        return convertView;
    }
 }

这是我的错误消息

Process: com.example.myapplication, PID: 25194
    java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference

最佳答案

我认为你的观点是错误的,试试这个。 convertView.findViewbyId

之前
public View getView(int position, View convertView, ViewGroup parent) {
            convertView = myInflater.inflate(R.layout.activity_template_shopping, null);
            drink_name = (TextView) convertView.findViewById(R.id.drink_name);
            size = (TextView) convertView.findViewById(R.id.size);
            sweet = (TextView) convertView.findViewById(R.id.sweet);
            feeding = (TextView) convertView.findViewById(R.id.feeding);
            count = (TextView) convertView.findViewById(R.id.count);
            price = (TextView) convertView.findViewById(R.id.price);
            ice = (TextView) convertView.findViewById(R.id.ice);

            if (drinkNamearry.size() == 0) {
                drink_name.setText("");
                size.setText("");
                sweet.setText("");
                ice.setText("");
            } else {
                drink_name.setText(drinkNamearry.get(position));
                size.setText(sizearry.get(position));
                sweet.setText(sweetarry.get(position));
                ice.setText(icearry.get(position));
            }
            return convertView;
        }

关于java - 我需要做一个加入购物车的功能(饮料应用程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58075246/

相关文章:

java - 如何在Android中禁用多次点击按钮

java - 添加点和平移后 AChartEngine 崩溃

Java NullPointerException 在构造函数的类中

java - Android - NullPointerEx。由 Android 库类中的 getPackageName() 引起

Java - InputStream .read() 函数

java - 在循环中执行 MavenCli 时出错(maven-embedder)?

android - 检查 EditText 值时出现空指针异常

java - 我可以在我的应用程序崩溃之前调用方法吗

java - Gson 库,将 JsonObject 转换为 MyObject

java - Android 中完全控制的线程队列