2015-04-01 53 views
0

我有两个活动选择并上传。我将两个字符串id和scan_id从一个活动传递给另一个活动。当我单独传递id时,该值正确传递。但是,当我尝试传递两个值时,一个值会覆盖另一个值。有没有一种单独的方式来传递两个字符串?无法将两个字符串从一个活动同时传递到另一个活动

SelectActivity.java

public class SelectActivity extends Activity { 
String v1; 
public static String EXTRA_MESSAGE_ID; 
public static String EXTRA_MESSAGE_SCAN; 
int flag; 
String strflag; 

StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder() 
            .permitAll() 
            .build(); 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_select); 

    Bundle b = getIntent().getExtras(); 
    EditText ed=(EditText)findViewById(R.id.patient_id); 
    ed.setText(b.getCharSequence("Contents")); 

    Button button = (Button) findViewById(R.id.button1); 
    StrictMode.setThreadPolicy(policy); 

    Button CTbutton = (Button) findViewById(R.id.CTScan); 
    CTbutton.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 
      flag=1; 
      strflag = String.valueOf(flag); 
      Log.e("log_tag", "sel id"+flag); 
      Log.e("log_tag", "sel scan"+v1); 

      Intent intent = new Intent(SelectActivity.this,MainActivity.class); 
      intent.putExtra(EXTRA_MESSAGE_ID,v1); 
      intent.putExtra(EXTRA_MESSAGE_SCAN,strflag); 
      startActivity(intent); 
     } 
    }); 
} 
} 

MainActivity.java

public class MainActivity extends Activity {  
    private static final String TAG = MainActivity.class.getSimpleName(); 

    private static final int CAMERA_CAPTURE_IMAGE_REQUEST_CODE = 100; 

    public static final int MEDIA_TYPE_IMAGE = 1; 

    private Uri fileUri; 
    private Button btnCapturePicture; 
    public static String EXTRA_MESSAGE_ID; 
    public static String EXTRA_MESSAGE_SCAN; 
    String message_id; 
    String message_scan; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    getActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor(getResources().getString(R.color.action_bar)))); 
    Intent intent = getIntent(); 
    message_id = intent.getStringExtra(SelectActivity.EXTRA_MESSAGE_ID); 
    message_scan = intent.getStringExtra(SelectActivity.EXTRA_MESSAGE_SCAN); 

    Log.e("log_tag", "id"+message_id); 
    Log.e("log_tag", "scan"+message_scan); 

    btnCapturePicture = (Button) findViewById(R.id.btnCapturePicture); 
    /** 
    * Capture image button click event 
    */ 
    btnCapturePicture.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
     captureImage(); 
     } 
    }); 
    } 
} 

的logcat的是这样的:

04-01 10:57:43.671: E/log_tag(12649): connection success 
04-01 10:57:50.374: E/log_tag(12649): sel id1 
04-01 10:57:50.374: E/log_tag(12649): sel scan2 
04-01 10:57:50.403: E/log_tag(12649): id1 
04-01 10:57:50.403: E/log_tag(12649): scan1 
+0

尝试像这样: - '公共静态字符串EXTRA_MESSAGE_ID =“ExtraMsgId”; public static String EXTRA_MESSAGE_SCAN =“ExtraMsgScan”;' – Vijay 2015-04-01 05:54:20

回答

0

你应该尝试这样的:

变化SelectActivity

public static String EXTRA_MESSAGE_ID="ExtraMsgId"; 
public static String EXTRA_MESSAGE_SCAN="ExtraMsgScan"; 

不应该做这样的。如果你这样给出

public static String EXTRA_MESSAGE_ID; 
public static String EXTRA_MESSAGE_SCAN; 

这看起来像空字符串。

+0

完美解决方案!!!工作就像一个魅力.... – Amalpriya 2015-04-01 13:49:42

+0

很高兴帮助你.. – Vijay 2015-04-01 16:30:57

1

你的逻辑是正确的,但在下面的代码问题

public static String EXTRA_MESSAGE_ID; 
public static String EXTRA_MESSAGE_SCAN; 

你没有值分配给两个变量。所以默认这两个变量都有空白值。所以当你把价值,第二个会覆盖它。因为两个可用的空键值相同的键 因此,尽量使用给变量赋予唯一值。

public static String EXTRA_MESSAGE_ID = "MSG_ID"; 
public static String EXTRA_MESSAGE_SCAN = "MSG_SCAN"; 

我希望你能理解。

2

初始化中均具有活性的字符串与相同的值

public static String EXTRA_MESSAGE_ID="something1"; 

public static String EXTRA_MESSAGE_SCAN="something2"; 
相关问题