Android Studio:java.lang.IllegalArgumentException类android.text.SpannableStringBuilder

2 java android

无法弄清楚这个错误来自哪里.

logcat的:

04-01 16:51:48.080: E/AndroidRuntime(1532): FATAL EXCEPTION: main
04-01 16:51:48.080: E/AndroidRuntime(1532): java.lang.IllegalArgumentException: invalid type for value: class android.text.SpannableStringBuilder
04-01 16:51:48.080: E/AndroidRuntime(1532):     at com.parse.ParseObject.put(ParseObject.java:2540)
04-01 16:51:48.080: E/AndroidRuntime(1532):     at com.joshuaphilpott.studybuddy.PostSessionActivity.getSessionInfo(PostSessionActivity.java:53)
04-01 16:51:48.080: E/AndroidRuntime(1532):     at com.joshuaphilpott.studybuddy.PostSessionActivity$1.onClick(PostSessionActivity.java:37)
04-01 16:51:48.080: E/AndroidRuntime(1532):     at android.view.View.performClick(View.java:4240)
04-01 16:51:48.080: E/AndroidRuntime(1532):     at android.view.View$PerformClick.run(View.java:17721)
04-01 16:51:48.080: E/AndroidRuntime(1532):     at android.os.Handler.handleCallback(Handler.java:730)
04-01 16:51:48.080: E/AndroidRuntime(1532):     at android.os.Handler.dispatchMessage(Handler.java:92)
04-01 16:51:48.080: E/AndroidRuntime(1532):     at android.os.Looper.loop(Looper.java:137)
04-01 16:51:48.080: E/AndroidRuntime(1532):     at android.app.ActivityThread.main(ActivityThread.java:5103)
04-01 16:51:48.080: E/AndroidRuntime(1532):     at java.lang.reflect.Method.invokeNative(Native Method)
04-01 16:51:48.080: E/AndroidRuntime(1532):     at java.lang.reflect.Method.invoke(Method.java:525)
04-01 16:51:48.080: E/AndroidRuntime(1532):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
04-01 16:51:48.080: E/AndroidRuntime(1532):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
04-01 16:51:48.080: E/AndroidRuntime(1532):     at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

这是我收到错误的活动:

public class PostSessionActivity extends Activity {

    EditText eText;
    ParseObject session = new ParseObject("Sessions");
    String str = "";
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_postsession);
        setSpinnerVals();
        Parse.initialize(this, "somestring", "someotherstring");

        final Button postButton = (Button) findViewById(R.id.button_postsession);
        postButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                Intent intent = new Intent(getApplicationContext(), HomeActivity.class);
                getSessionInfo();
                Toast toast = Toast.makeText(getApplicationContext(), "Session Posted!", Toast.LENGTH_LONG);
                toast.show();
                startActivity(intent);
            }
        });

    }


    // Get session information and upload to database
    public void getSessionInfo()
    {

        // Get name of session
        eText = (EditText) findViewById(R.id.editText1);
        session.put("Name", eText.getText());

        // Get what project working on
        eText = (EditText) findViewById(R.id.editText2);
        session.put("Project", eText.getText());

        // Get gps location
        /*eText = (EditText) findViewById(R.id.editText3);
        session.put()*/

        session.put("Class", "Android");

        session.saveInBackground();
    }


    public void setSpinnerVals(){
        Spinner spinner = (Spinner)findViewById(R.id.spinner);
        List<String> list = new ArrayList<String>();

        list.add("Android");
        list.add("Computer Systems Design");
        list.add("Mobile Control of Robots");
        ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, list);
        dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(dataAdapter);


    }
}
Run Code Online (Sandbox Code Playgroud)

Sha*_*tan 6

你需要使用:

eText.getText().toString()
Run Code Online (Sandbox Code Playgroud)

代替:

eText.getText()
Run Code Online (Sandbox Code Playgroud)

对所有EditText值执行此操作

getText editable不返回valueEditText,你需要将其转换为String

我认为EditText在更改小部件时更改对象非常好,您可以使用eText三个EditText小部件:

 eText = (EditText) findViewById(R.id.editText1);
 session.put("Name", eText.getText());

 // Get what project working on
 eText = (EditText) findViewById(R.id.editText2);
 session.put("Project", eText.getText());

 // Get gps location
 /*eText = (EditText) findViewById(R.id.editText3);
 session.put()*/
Run Code Online (Sandbox Code Playgroud)

你可以使用类似的东西:

 EditText eText1 , eText2 , eText3;
Run Code Online (Sandbox Code Playgroud)

并在代码中

 eText1 = (EditText) findViewById(R.id.editText1);
 session.put("Name", eText.getText());

 // Get what project working on
 eText2 = (EditText) findViewById(R.id.editText2);
 session.put("Project", eText.getText());

 // Get gps location
 /*eText3 = (EditText) findViewById(R.id.editText3);
 session.put()*/
Run Code Online (Sandbox Code Playgroud)