我先放上来出问题的类的代码!,其中有两个地方被我用注释测试出来是有问题的地方!(就是一点一点把代码注释然后在手机上运行,看什么时候手机不黑屏就说明被去掉的那一块代码没问题。我没用debug是因为能被编译器编译而且虚拟机上可以运行,所以我也不知道怎么debug了==)
代码中三个私有的F开头的类都是继承fragment的类,是用来做页面的。User类里面放着一些基本类型的数据和数据库,截图如下
package com.example.myapplication;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class F_kmp extends AppCompatActivity implements View.OnClickListener{
private F_HomePage homePage;
private F_MyInformation myInformation;
private F_OneCommodity oneCommodity;
private TextView textView1;
private ImageView image1,image2,image3;
private User user;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.f_kmp);
textView1 = findViewById(R.id.t1);
image1 = findViewById(R.id.image1);
image2 = findViewById(R.id.image2);
image3 = findViewById(R.id.image3);
Context context = getApplicationContext();
///////////////////////////1
user = new User(context);
image1.setImageResource(R.drawable.homepage_onclick);
homePage = new F_HomePage();
myInformation = new F_MyInformation();
oneCommodity = new F_OneCommodity();
image1.setOnClickListener(this);
image2.setOnClickListener(this);
image3.setOnClickListener(this);
///////////////////////////2
getSupportFragmentManager().beginTransaction().replace(R.id.constrainCanUse, homePage).commit();
}
@Override
public void onClick(View view) {
switch(view.getId()){
case R.id.image1:
image1.setImageResource(R.drawable.homepage_onclick);
image2.setImageResource(R.drawable.purchase);
image3.setImageResource(R.drawable.me);
getSupportFragmentManager().beginTransaction().replace(R.id.constrainCanUse, homePage).commit();
break;
//下方未修改
case R.id.image2:
image1.setImageResource(R.drawable.homepage);
image2.setImageResource(R.drawable.purchase_onclick);
image3.setImageResource(R.drawable.me);
getSupportFragmentManager().beginTransaction().replace(R.id.constrainCanUse, oneCommodity).commit();
break;
case R.id.image3:
image1.setImageResource(R.drawable.homepage);
image2.setImageResource(R.drawable.purchase);
image3.setImageResource(R.drawable.me_onclick);
getSupportFragmentManager().beginTransaction().replace(R.id.constrainCanUse,myInformation).commit();
break;
}
}
}
就在这一个地方出了问题==,如果删去上面1、2以及相关代码之后手机上就可以运行了,但是如果加上1、2任意一个及相关代码之后手机跳转到这个页面之后就会黑屏。我是小米手机,会自动提示说该软件调用空指针,,这是为什么啊?这个软件在我电脑上的虚拟机上可以用。
所以想请问各位专家怎么解决这种问题==我还是小白不知道怎么解决了。