使用intent获取null值

时间:2015-09-04 06:45:53

标签: android

我使用intent获取null值因为我无法进一步编码。在这里,我将数据从一个意图发送到下一个但在这里不起作用。我得到空值但我发送特定值,即temp_id

firstActivity.java

def setUp(self):
        self.browser = webdriver.Firefox()
        browser=self.browser
        browser.get("http://google.com")

下一个活动

public void onItemClick(AdapterView<?> parent, View v,
                int position, long id)
        {

            super.onItemClick(parent, v, position, id);

         final Cursor c = (Cursor) mAdapter.getItem(position);

         String name = c.getString(c.getColumnIndex( Constants.GREETING_NAME ));
        final int template_id = c.getInt(c.getColumnIndex( Constants.KEY_ID_GREET ));
        String temp_id=String.valueOf(template_id);


         goForEdit(temp_id);

         //confirm
    Toast.makeText(this,
            "Name :"+name+"  id : " + temp_id , Toast.LENGTH_LONG)
            .show();    
         }

        public void goForEdit(String temp_id){
            Intent launchSMSTempEdit = new Intent(
                    ManageEmailTemplate.this,
                                EmailTempEdit.class);

            if(!(temp_id==null))
            {
            launchSMSTempEdit.putExtra("temp_id",temp_id);
            startActivity(launchSMSTempEdit);
            }
        }

Log cat:

 @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.create_template);




        sms_key_id = getIntent().getStringExtra("called");

        if(sms_key_id == null) {
            sms_key_id = "empty string";
        }

        if (sms_key_id.equalsIgnoreCase("add")) {
            //do whatever

        } else {
        //do whatever
            sms_key_id="1";
       System.out.println("KEY ID==="+sms_key_id);

        }



        Toast.makeText(this, "CODE:::"+ mTemplateType + "  id =="+ sms_key_id  ,          Toast.LENGTH_LONG).show();

4 个答案:

答案 0 :(得分:3)

您在第一项活动中输入了密钥temp_id的ID并尝试使用called阅读,这就是您在下一次活动中未收到该密码的原因。我下一次活动将sms_key_id = getIntent().getStringExtra("called");更改为sms_key_id = getIntent().getStringExtra("temp_id");

答案 1 :(得分:0)

替换

if (sms_key_id.equalsIgnoreCase("add"))

if (sms_key_id!=null && sms_key_id.equalsIgnoreCase("add"))

答案 2 :(得分:0)

首先 - 您使用一个键 temp_id 发送意图,并使用另一个键

从中取出值

第二 - 从您的日志中,查找引起的,它将告诉您RuntimeException的原因以及有问题的代码的行号。在您的情况下,它是 EmailTempEdit.java:145

答案 3 :(得分:0)

问题出在哪里。我是正确的,在第145行是的,有一个问题。实际上我没有为此代码采取意图(mTemplateType=getIntent().getStringExtra("template_type"))。

if(mTemplateType.equals("email")){
            message = subject + subjectMessageDelimiter + message;  //|~| is the delimiter
            messageTypeCode = Constants.EMAIL_CODE;
        } else if(mTemplateType.equals("sms")){
            messageTypeCode = Constants.SMS_CODE;
        }