草庐IT

android - 未能将结果 ResultInfo{who_null,request=1,result=-1, data =Intent{( has extras )}} 传递给 Activity ;NullPointerException

coder 2023-12-01 原文

我有两个类,它们的名称分别是 Courses 和 MainActivity。MainActivity 具有 LAUNCHER Activity 并且具有 Gridlayout。类(class)具有默认 Activity 。当 GridLayout 单击类(class)界面时,用户正在根据他或她的类(class)程序填充 View ,因此创建类(class)对象。我想将此对象发送到 MainActivity 类。当我发送此对象时,我正在得到 NullPointerException。我试图解决这个问题,但我不能。我需要专业的帮助。

这是Courses.java

package com.example.classprogram;
public class Courses extends Activity implements Parcelable {

private String course_name;
private String classroom;
private String teacname;
private String day;
private String start_hour;
private String end_hour;
List<String> days;
List<String> StartingHours;



public static String COURSENAME;
public static String CLASSROOM;
public static String TCHRNAME;
public static String DAY;
public static String SHOUR;
public static String EHOUR;






public String getCourse_name() {
    return course_name;
}



public void setCourse_name(String course_name) {
    this.course_name = course_name;
}



public String getClassroom() {
    return classroom;
}



public void setClassroom(String classroom) {
    this.classroom = classroom;
}



public String getTeacname() {
    return teacname;
}



public void setTeacname(String teacname) {
    this.teacname = teacname;
}



public String getDay() {
    return day;
}



public void setDay(String day) {
    this.day = day;
}



public String getStart_hour() {
    return start_hour;
}



public void setStart_hour(String start_hour) {
    this.start_hour = start_hour;
}



public String getEnd_hour() {
    return end_hour;
}



public void setEnd_hour(String end_hour) {
    this.end_hour = end_hour;
}

Button add_class;
EditText cName;
EditText cRoom;
EditText tName;
Spinner gun;
Spinner sHour;
Spinner eHour;


public Courses() {}


public Courses(String course_name, String classroom, String teacname,
        String day, String start_hour, String end_hour) {
    super();
    this.course_name = course_name;
    this.classroom = classroom;
    this.teacname = teacname;
    this.day = day;
    this.start_hour = start_hour;
    this.end_hour = end_hour;
}


public Courses(Parcel in) {

    /*String[] data = new String[5];

    in.readStringArray(data);
    this.course_name = data[0];
    this.classroom = data[1];
    this.teacname = data[2];
    this.day = data[3];
    this.end_hour = data[4];
    this.start_hour = data[5];*/

    course_name = in.readString();
    classroom = in.readString();
    teacname = in.readString();
    day = in.readString();
    start_hour = in.readString();
    end_hour = in.readString();
}



@Override
public int describeContents() {
    // TODO Auto-generated method stub
    return 0;
}



@Override
public void writeToParcel(Parcel dest, int flags) {
    // TODO Auto-generated method stub

    //dest.writeStringArray(new String[]{this.course_name,this.classroom,this.teacname,this.day,this.start_hour,this.end_hour});
    dest.writeString(course_name);
    dest.writeString(classroom);
    dest.writeString(teacname);
    dest.writeString(day);
    dest.writeString(start_hour);
    dest.writeString(end_hour);
}

public static final Parcelable.Creator<Courses> CREATOR =new
        Parcelable.Creator<Courses>() {
             public Courses createFromParcel(Parcel in){
                 return new Courses(in);
             }
             public Courses[] newArray(int size){
                 return new Courses[size];
             }
        };






@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.add_lecture);

     final Courses course = new Courses();

    add_class = (Button)findViewById(R.id.add);
    cName = (EditText)findViewById(R.id.class_Name);
    cRoom = (EditText)findViewById(R.id.classroom);
    tName = (EditText)findViewById(R.id.teacher_name);
    gun = (Spinner)findViewById(R.id.day);
    sHour = (Spinner)findViewById(R.id.start_hour);
    eHour = (Spinner)findViewById(R.id.end_hour);





    days = new ArrayList<String>();
    days.add("Monday");
    days.add("Thuesday");
    days.add("Wednesday");
    days.add("Thursday");
    days.add("Friday");
    days.add("Saturday");


    ArrayAdapter<String> adp = new ArrayAdapter<String>
    (this, android.R.layout.simple_dropdown_item_1line, days);

    adp.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
    gun.setAdapter(adp);

    gun.setOnItemSelectedListener(new OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int arg2, long arg3) {


            //Courses a = new Courses(); 

            switch(arg2) {

            case 0 :
                course.setDay("Monday");
                break;
            case 1 :
                course.setDay("Tuesday");
                break;
            case 2 :
                course.setDay("Wednesday");
                break;
            case 3 :
                course.setDay("Thursday");
                break;
            case 4 :
                course.setDay("Friday");
                break;
            case 5:
                course.setDay("Saturday");
            }               
        }
        @Override
        public void onNothingSelected(AdapterView<?> arg0) {


        }
    });

    String[] Hours = getResources().getStringArray(R.array.Starting_Hours);
    ArrayAdapter<String> adp1=new ArrayAdapter<String>
             (this, android.R.layout.simple_spinner_item,Hours);
    adp1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    sHour.setAdapter(adp1);

    sHour.setOnItemSelectedListener(new OnItemSelectedListener(){

        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int arg2, long arg3) {
            // TODO Auto-generated method stub

            //Courses a = new Courses(); 

            switch(arg2) {

            case 0 :
                course.setStart_hour("8:00");
                break;
            case 1 :
                course.setStart_hour("8:30");
                break;
            case 2 :
                course.setStart_hour("9:00");
                break;
            case 3 :
                course.setStart_hour("9:30");
                break;
            case 4 :
                course.setStart_hour("10:00");
                break;
            case 5:
                course.setStart_hour("10:30");
                break;
            case 6:
                course.setStart_hour("11:00");
                break;
            case 7:
                course.setStart_hour("11:30");
                break;
            case 8:
                course.setStart_hour("12:00");
                break;
            case 9:
                course.setStart_hour("12:30");
                break;
            case 10:
                course.setStart_hour("13:00");
                break;
            case 11:
                course.setStart_hour("13:30");
                break;
            case 12:
                course.setStart_hour("14:00");
                break;
            case 13:
                course.setStart_hour("14:30");
                break;
            case 14:
                course.setStart_hour("15:00");
                break;
            case 15:
                course.setStart_hour("15:30");
                break;
            case 16:
                course.setStart_hour("16:00");
                break;
            case 17:
                course.setStart_hour("16:30");
                break;
            case 18:
                course.setStart_hour("17:00");
                break;
            case 19:
                course.setStart_hour("17:30");
                break;
            case 20:
                course.setStart_hour("18:00");
                break;
            case 21:
                course.setStart_hour("18:30");
                break;
            case 22:
                course.setStart_hour("19:00");
                break;
            }               
        }
        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub

        }
    });
    String [] _eHours = getResources().getStringArray(R.array.Ending_Hours);
    ArrayAdapter<String> adp2=new ArrayAdapter<String>
             (this, android.R.layout.simple_spinner_item,_eHours);
    adp2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    eHour.setAdapter(adp2);

    eHour.setOnItemSelectedListener(new OnItemSelectedListener(){

        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int arg2, long arg3) {


            //Courses a = new Courses(); 

            switch(arg2) {

            case 0 :
                course.setEnd_hour("9:00");
                break;
            case 1 :
                course.setEnd_hour("9:30");
                break;
            case 2 :
                course.setEnd_hour("10:00");
                break;
            case 3:
                course.setEnd_hour("10:30");
                break;
            case 4:
                course.setEnd_hour("11:00");
                break;
            case 5:
                course.setEnd_hour("11:30");
                break;
            case 6:
                course.setEnd_hour("12:00");
                break;
            case 7:
                course.setEnd_hour("12:30");
                break;
            case 8:
                course.setEnd_hour("13:00");
                break;
            case 9:
                course.setEnd_hour("13:30");
                break;
            case 10:
                course.setEnd_hour("14:00");
                break;
            case 11:
                course.setEnd_hour("14:30");
                break;
            case 12:
                course.setEnd_hour("15:00");
                break;
            case 13:
                course.setEnd_hour("15:30");
                break;
            case 14:
                course.setEnd_hour("16:00");
                break;
            case 15:
                course.setEnd_hour("16:30");
                break;
            case 16:
                course.setEnd_hour("17:00");
                break;
            case 17:
                course.setEnd_hour("17:30");
                break;
            case 18:
                course.setEnd_hour("18:00");
                break;
            case 19:
                course.setEnd_hour("18:30");
                break; 
            case 20:
                course.setEnd_hour("19:00");
                break;
            }               
        }
        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub

        }
    });




     add_class.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            course.setCourse_name(cName.getText().toString());
            course.setClassroom(cRoom.getText().toString());
            course.setTeacname(tName.getText().toString());


       /* Toast.makeText(getApplicationContext(),course.getCourse_name(),Toast.LENGTH_LONG ).show(); 
        Toast.makeText(getApplicationContext(), course.getClassroom().toString(), Toast.LENGTH_LONG).show();
        Toast.makeText(getApplicationContext(), course.getTeacname().toString(), Toast.LENGTH_LONG).show();
        Toast.makeText(getApplication(), course.getDay(), Toast.LENGTH_LONG).show();
        Toast.makeText(getApplication(), course.getStart_hour(), Toast.LENGTH_LONG).show();
        Toast.makeText(getApplication(), course.getEnd_hour(), Toast.LENGTH_LONG).show();*/

            /*data.putExtra("crs",new Courses(cName.getText().toString(),cRoom.getText().toString(),tName.getText().toString(),
                    gun.getSelectedItem().toString(),sHour.getSelectedItem().toString(),eHour.getSelectedItem().toString()));*/

            Intent data = new Intent(Courses.this,MainActivity.class);
            data.putExtra("ders",course);



        setResult(RESULT_OK,data);
        finish();

        }
    });


}

这里是 MainActivity.java

package com.example.classprogram;

import java.util.ArrayList;
import java.util.List;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.GridLayout;
import android.widget.Spinner;
import android.widget.Toast;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.TextView;

  public class MainActivity extends Activity {

public GridLayout glayout;
protected String _COURSENAME ;
protected String _CLASSROOM ;
protected String _TCHRNAME ;
protected String _DAY ;
protected String _SHOUR ;
protected String _EHOUR ;
//private Bundle extras[] ;
int THIS = 1;
TextView[][] indexes = new TextView[7][24];
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    glayout = (GridLayout)findViewById(R.id.grid);

    glayout.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent in = new Intent (getApplicationContext(),Courses.class);
            startActivityForResult(in,THIS);


        }
    });

}




@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    if(requestCode==THIS){
        if(resultCode==RESULT_OK){

              // Bundle d = getIntent().getExtras();
         //Courses _course = d.getParcelable("crs");

          Intent x = getIntent();
          Courses _course = (Courses) x.getParcelableExtra("course");

          Toast.makeText(getApplicationContext(), _course.getCourse_name(), Toast.LENGTH_LONG).show();

            /*for(int i=0;i<glayout.getColumnCount();i++){
                 for(int j=0; i<glayout.getRowCount();i++){
                     indexes[i][j]=indexes[i][j];
                     if(glayout.getChildAt(i).getTag()==_course.getDay() && glayout.getChildAt(j).getTag()==_course.getStart_hour()){

                                glayout = (GridLayout)findViewById(R.id.grid);
                                indexes[i][j].setBackgroundColor(993300);
                     }
                 }
            }*/
        }
    }
    super.onActivityResult(requestCode, resultCode, data);


}




@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

}

和 Logcat 报告

 FATAL EXCEPTION: main

at android.app.ActivityThread.deliverResults(ActivityThread.java:3367)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3410)
at android.app.ActivityThread.access$1100(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1304)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.example.classprogram.MainActivity.onActivityResult(MainActivity.java:69)
at android.app.Activity.dispatchActivityResult(Activity.java:5322)
at android.app.ActivityThread.deliverResults(ActivityThread.java:3363)
12-29 10:58:32.392: E/AndroidRuntime(1947):     ... 11 more

我认为问题出在这三个代码中,但我无法解决。请帮助我,在此先感谢您的帮助。

Intent x = getIntent();
Courses _course = (Courses) x.getParcelableExtra("course");         
Toast.makeText(getApplicationContext(), _course.getCourse_name(),
Toast.LENGTH_LONG).show();

最佳答案

onActivityResult方法中,有一个Intent参数。

onActivityResult 中执行此操作:-

        Bundle bundle = data.getExtras();

他们你可以使用这个包对象检索额外的

关于android - 未能将结果 ResultInfo{who_null,request=1,result=-1, data =Intent{( has extras )}} 传递给 Activity ;NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20827237/

有关android - 未能将结果 ResultInfo{who_null,request=1,result=-1, data =Intent{( has extras )}} 传递给 Activity ;NullPointerException的更多相关文章

  1. ruby - rails 3 redirect_to 将参数传递给命名路由 - 2

    我没有找到太多关于如何执行此操作的信息,尽管有很多关于如何使用像这样的redirect_to将参数传递给重定向的建议:action=>'something',:controller=>'something'在我的应用程序中,我在路由文件中有以下内容match'profile'=>'User#show'我的表演Action是这样的defshow@user=User.find(params[:user])@title=@user.first_nameend重定向发生在同一个用户Controller中,就像这样defregister@title="Registration"@user=Use

  2. ruby-on-rails - 如何生成传递一些自定义参数的 `link_to` URL? - 2

    我正在使用RubyonRails3.0.9,我想生成一个传递一些自定义参数的link_toURL。也就是说,有一个articles_path(www.my_web_site_name.com/articles)我想生成如下内容:link_to'Samplelinktitle',...#HereIshouldimplementthecode#=>'http://www.my_web_site_name.com/articles?param1=value1¶m2=value2&...我如何编写link_to语句“alàRubyonRailsWay”以实现该目的?如果我想通过传递一些

  3. ruby - 在 Ruby 中按名称传递函数 - 2

    如何在Ruby中按名称传递函数?(我使用Ruby才几个小时,所以我还在想办法。)nums=[1,2,3,4]#Thisworks,butismoreverbosethanI'dlikenums.eachdo|i|putsiend#InJS,Icouldjustdosomethinglike:#nums.forEach(console.log)#InF#,itwouldbesomethinglike:#List.iternums(printf"%A")#InRuby,IwishIcoulddosomethinglike:nums.eachputs在Ruby中能不能做到类似的简洁?我可以只

  4. Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting - 2

    1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里

  5. 安卓apk修改(Android反编译apk) - 2

    最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路

  6. ruby - 如何将 Puma::Configuration 传递给 Sinatra? - 2

    这是我的网络应用:classFront我是这样开始的(请不要建议使用Rack):Front.start!这是我的Puma配置对象,我不知道如何传递给它:require'puma/configuration'Puma::Configuration.new({log_requests:true,debug:true})说真的,怎么样? 最佳答案 配置与您运行的方式紧密相关puma服务器。运行的标准方式puma-pumaCLI命令。为了配置puma配置文件config/puma.rb或config/puma/.rb应该提供(参见examp

  7. jquery - 如何将 AJAX 变量从 jQuery 传递到他们的 Controller ? - 2

    我有一个电子邮件表格。但是我正在制作一个测试电子邮件表单,用户可以在其中添加一个唯一的电子邮件,并让电子邮件测试将其发送到该特定电子邮件。为了简单起见,我决定让测试电子邮件通过ajax执行,并将整个内容粘贴到另一个电子邮件表单中。我不知道如何将变量从我的HAML发送到我的Controllernew.html.haml-form_tagadmin_email_blast_pathdoSubject%br=text_field_tag'subject',:class=>"mass_email_subject"%brBody%br=text_area_tag'message','',:nam

  8. ruby - Controller 中的 request.cookies 和 cookies 有什么区别? - 2

    request.cookies和RubyonRails中的cookies对象有区别吗?我目前正在尝试将带有cookie的请求从我的node.js服务器发送到我的ROR4应用程序。似乎在ROR应用程序中,request.cookies包含我发送的cookie,但是cookies对象(现有逻辑所基于的对象)没有它。我已经搜索了文档,但找不到任何相关内容。我错过了什么吗?感谢您的帮助。 最佳答案 理想情况下,request.cookies和cookies应该相同。但是,在POST(创建操作)请求中,rails会验证XSRFtoken。如果

  9. ruby - 如何将 lambda 传递给 Hash.each? - 2

    如何将lambda传递给hash.each,以便我可以重复使用一些代码?>h={a:'b'}>h.eachdo|key,value|end=>{:a=>"b"}>test=lambdado|key,value|puts"#{key}=#{value}"end>test.call('a','b')a=b>h.each&testArgumentError:wrongnumberofarguments(1for2)from(irb):1:in`blockinirb_binding'from(irb):5:in`each'from(irb):5from/Users/jstillwell/.rv

  10. ruby - 将命令行上的变量传递给 Cucumber 测试 - 2

    我正在尝试将cucumber项目的用户名和密码置于版本控制之外。有没有办法在命令行上手动将用户名和密码等变量传递给Cucumber脚本?我的备份计划是将它们放在一个YML文件中,然后将该文件添加到gitignore,这样它们就不会被置于版本控制中。 最佳答案 所以,我看到了您对铁皮人的评论,答案是肯定的。cucumberPASSWORD=my_passwordPASSWORD被设置为环境变量,您可以通过将其引用为ENV['PASSWORD']来使用它的值。例如,browser.text_field(:id=>'pwd').setEN

随机推荐