无法工作尝试调用虚拟方法';void android.widget.TextView.setText(java.lang.CharSequence)和#x27;关于空对象引用

无法工作尝试调用虚拟方法';void android.widget.TextView.setText(java.lang.CharSequence)和#x27;关于空对象引用,java,android,textview,Java,Android,Textview,我已经搜索了我的案例,但我找不到正确的答案,我是这里的新手,它仍然不起作用,请帮助我… 这是我的密码 TextView TotalAmount; int total_amount = 0; RecyclerView dayrecyclerView; List<Day_Details> DL; Day_Adapter dayAdapter; public static List<Day_Details> daysize; TotalAmount = (TextView)

我已经搜索了我的案例,但我找不到正确的答案,我是这里的新手,它仍然不起作用,请帮助我…

这是我的密码

TextView TotalAmount;
int total_amount = 0;
RecyclerView dayrecyclerView;
List<Day_Details> DL;
Day_Adapter dayAdapter;
public static List<Day_Details> daysize;

 TotalAmount = (TextView) findViewById(R.id.event_total);
    TotalAmount.setText(String.valueOf(total_amount));
  public void Day(List<Day_Details> dyl) {
    //List<Day_Details>dayDetailsList

    Log.i("day response length", "dayresponse length " + dyl.size());

    if (dyl.size() > 0) {
        daysize = dyl;
        daylayout.setVisibility(LinearLayout.VISIBLE);
        DL = new ArrayList<>();
        dayAdapter = new Day_Adapter(this, DL);
        RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(this);
        dayrecyclerView.setLayoutManager(layoutManager);
        dayrecyclerView.setItemAnimator(new DefaultItemAnimator());
        dayrecyclerView.setAdapter(dayAdapter);
        dayrecyclerView.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                return true;
            }
        });
        for (int i = 0; i < dyl.size(); i++) {
            String price = "₹ " + dyl.get(i).getDayPrice();
            Day_Details DD = new Day_Details(dyl.get(i).getId(), 
            dyl.get(i).getDayTitle(), dyl.get(i).getDayDate(), price, 
            dyl.get(i).getDayContent());
            Log.i(" Event_view ", "Day: Details "+DD.toString());
            DL.add(DD);
        }

        dayAdapter.notifyDataSetChanged();

    }


}
 public  void daychecker(Boolean ischecked,String id){

if(ischecked == true){
    for (int i = 0; i <daysize.size(); i++) {
        if(id == daysize.get(i).getId()){
           String price = daysize.get(i).getDayPrice();
           int amount = Integer.parseInt(price);
            total_amount = total_amount + amount;

        }
    }
    TotalAmount.setText("1234");
}else{
    for (int i = 0; i <=daysize.size(); i++) {
        if(id == String.valueOf(i)){
            String price = daysize.get(i).getDayPrice();
            int amount = Integer.parseInt(price);
            total_amount = total_amount - amount;
            TotalAmount.setText(String.valueOf(total_amount));
        }
    }
}
}
这是我的观点

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.event_view_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);


    sharedPreferences = getSharedPreferences("DocEventPreference", Context.MODE_PRIVATE);
    memid = sharedPreferences.getString("DocId", null);
    scrollView = (NestedScrollView) findViewById(R.id.Event_view_Scroll);
    //team
    teamrecyclerView = (RecyclerView) findViewById(R.id.team_recycler_view);
    //gallery
    galrecyclerView = (RecyclerView) findViewById(R.id.galleryrecycler_view);
    //day
    dayrecyclerView = (RecyclerView) findViewById(R.id.dayrecycler_view);

    //details
    About = (TextView) findViewById(R.id.abouttheevent);
    //qrcode
    imageView = (ImageView) findViewById(R.id.qrCode);
    //register
    TotalAmount = (TextView) findViewById(R.id.event_total);
    TotalAmount.setText(String.valueOf(total_amount));
    registerlay = (LinearLayout) findViewById(R.id.registerlayout);
    button = (Button) findViewById(R.id.Event_reg_confirm_btn);
    scrollView.post(new Runnable() {
        public void run() {
            scrollView.fullScroll(scrollView.FOCUS_UP);
        }
    });
    events_details = new Events_Details();
    events_details.setId(event_id);
    eventitle = (TextView) findViewById(R.id.Event_Name);
    Event_IMG = (ImageView) findViewById(R.id.backdrop);
    //LinearLayout
     eventgallerylayout = (LinearLayout) 
    findViewById(R.id.EventView_Gallery);
    eventdetailslayout = (LinearLayout) 
    findViewById(R.id.EventView_Details);
    daylayout = (LinearLayout) findViewById(R.id.EventDay_Details);
    eventteamlayout = (LinearLayout) findViewById(R.id.EventView_Team);
    eventQRlayout = (LinearLayout) findViewById(R.id.EventView_Qrcode);
    //        eventregisterlayout = (LinearLayout) 
    findViewById(R.id.EventView_Register);
    eventdetailslayout.setVisibility(LinearLayout.GONE);
    button.setVisibility(View.GONE);
    eventteamlayout.setVisibility(LinearLayout.GONE);
    daylayout.setVisibility(LinearLayout.GONE);
    eventgallerylayout.setVisibility(LinearLayout.GONE);
    //        eventQRlayout.setVisibility(LinearLayout.GONE);
   //        eventregisterlayout.setVisibility(LinearLayout.GONE);
    SingleEventJavaWebservice webservice = new SingleEventJavaWebservice(
            Event_View.this, events_details, Event_View.this);
    webservice.execute();

    initCollapsingToolbar();
}

提前感谢…

@Dithesh请使用debug检查您要赋值的TextView是否已在该方法中初始化。另外,请检查字符串。valueOf(total_amount)返回正确的字符串值。

文本视图的初始化应在onCreate()中

TotalAmount=(TextView)findViewById(R.id.event_total)

这就是导致错误的原因

根据更新的问题进行编辑


初始化看起来很好,因此如果布局文件“event\u view\u main.xml”包含id为“event\u total”的TextView,则应检查该文件。

如果未初始化TextView,则会抛出空指针
创建活动时,应初始化TextView

请检查您的xml布局,以确定id“event_total”是否正确位于下一行:

  TotalAmount = (TextView) findViewById(R.id.event_total);

这不是强制性的我们可以在任何地方初始化它want@HarshSinghal是的,我们可以在onCreate之外初始化视图,但这只能在onCreate之后执行的生命周期方法中完成。因为这是我们膨胀布局的地方,如果没有布局,视图将无法初始化,并将抛出NPE。请阅读我已经把oncreate视图部分。。。请检查一下,告诉我出了什么问题that@DitheshVishalakshan检查id为“event\u total”的文本视图是否存在于布局文件“event\u view\u main.xml”中,实际上它是从另一个xml包含到event\u view\u main布局中的。因此,是否存在任何问题,我已在字符串中传递了6000。返回值为(total\u amount)。。但当时文本视图为空,我不知道为什么。。我已在开始时初始化…是否从活动中调用DayChecker方法?只是为了测试,在TextView初始化后调用此方法TextView的初始化看起来很好。检查第二行是否出现错误。如果未出现错误,则文本视图已正确初始化。TotalAmount=(TextView)findViewById(R.id.event_total);TotalAmount.setText(String.valueOf(total_amount));
  TotalAmount = (TextView) findViewById(R.id.event_total);