Reputation: 1
I'm getting wrong information by transferring data from one activity to another using Intent. Here's my code of First Activity
from where I set the value in intent, and the code of Second Activity
from where I tried to retrieve the value.
First Activity:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.seatAvailabillity:
Intent i121 = new Intent(Train_Name.this, SeatAvail.class);
i121.putExtra("EditTextvAlue",trainNumber.getText().toString());
i121.putExtra("AutoConplete",sourceTxt.getText().toString());
i121.putExtra("AutoCompleteTextView",destinationTxt.getText().toString());
startActivity(i121);
break;
case R.id.trainFare:
Intent i123 = new Intent(Train_Name.this, Train_Fare.class);
i123.putExtra("EditTextvALUE",trainNumber.getText().toString());
i123.putExtra("AutoConplete1",sourceTxt.getText().toString());
i123.putExtra("AutoCompleteTextView",destinationTxt.getText().toString());
i123.putExtra("dateipTxt",dateipTxt.getText().toString());
startActivity(i123);
break;
case R.id.trainRoute:
Intent intent = new Intent(Train_Name.this,TrainRoute.class);
trainNumber=(TextView) findViewById(R.id.trainNumberTxt);
intent.putExtra("",trainNumber.getText().toString());
startActivity(intent);
break;
}
return true;
}
Second Activity:
trainRoutList = (ListView) findViewById(R.id.trainRoutList);
trTxt.setText(getIntent().getExtras().getString(""));
trTxt.setEnabled(true);
}
Error log:
02-04 20:08:38.464 13919-13919/com.xynderous.sangam.indianrail W/IInputConnectionWrapper: beginBatchEdit on inactive InputConnection
02-04 20:08:38.464 13919-13919/com.xynderous.sangam.indianrail W/IInputConnectionWrapper: endBatchEdit on inactive InputConnection
02-04 20:08:56.054 13919-13919/com.xynderous.sangam.indianrail E/TRAIN_NAME: Starting TrainRoute with TRAIN_NUMBER: android.support.v7.widget.AppCompatTextView{21edeff8 V.ED.... ........ 6,10-91,51 #7f0d00cb app:id/trainNumberTxt}
02-04 20:08:56.094 13919-15993/com.xynderous.sangam.indianrail V/FA: Activity paused, time: 265824017
02-04 20:08:56.104 13919-13919/com.xynderous.sangam.indianrail V/FA: onActivityCreated
02-04 20:08:56.114 13919-13919/com.xynderous.sangam.indianrail I/AppCompatViewInflater: app:theme is now deprecated. Please move to using android:theme instead.
02-04 20:08:56.114 13919-13919/com.xynderous.sangam.indianrail D/TextView: Constructor - Got Res id for appearance for textColorPrimaryInverse
02-04 20:08:56.114 13919-13919/com.xynderous.sangam.indianrail W/ResourceType: Skipping entry 0x7f0c0051 in package table 0 because it is not complex!
02-04 20:08:56.124 13919-13919/com.xynderous.sangam.indianrail D/TextView: Constructor - Got appearance for textColorPrimaryInverse
02-04 20:08:56.124 13919-13919/com.xynderous.sangam.indianrail D/TextView: Constructor -- Got mEditTextBackgroundColor
02-04 20:08:56.134 13919-13919/com.xynderous.sangam.indianrail D/DynamitePackage: Instantiating com.google.android.gms.ads.ChimeraAdManagerCreatorImpl
02-04 20:08:56.144 13919-13919/com.xynderous.sangam.indianrail I/Ads: Starting ad request.
02-04 20:08:56.144 13919-13919/com.xynderous.sangam.indianrail I/Ads: Use AdRequest.Builder.addTestDevice("47628BF8FFA0CAD427FE4BA1FCE8DF4B") to get test ads on this device.
02-04 20:08:56.154 13919-13919/com.xynderous.sangam.indianrail D/DynamitePackage: Instantiating com.google.android.gms.ads.ChimeraAdManagerCreatorImpl
02-04 20:08:56.164 13919-13919/com.xynderous.sangam.indianrail I/Ads: Starting ad request.
02-04 20:08:56.164 13919-13919/com.xynderous.sangam.indianrail I/Ads: Use AdRequest.Builder.addTestDevice("47628BF8FFA0CAD427FE4BA1FCE8DF4B") to get test ads on this device.
02-04 20:08:56.184 13919-15993/com.xynderous.sangam.indianrail V/FA: Activity resumed, time: 265824112
02-04 20:08:56.304 13919-13919/com.xynderous.sangam.indianrail I/ad hight: 0
02-04 20:08:56.374 13919-13919/com.xynderous.sangam.indianrail W/IInputConnectionWrapper: beginBatchEdit on inactive InputConnection
02-04 20:08:56.374 13919-13919/com.xynderous.sangam.indianrail W/IInputConnectionWrapper: endBatchEdit on inactive InputConnection
02-04 20:08:56.384 13919-13926/com.xynderous.sangam.indianrail I/dalvikvm: Could not compile trace for Ljava/util/Arrays;fill, offset 7
02-04 20:08:56.384 13919-13926/com.xynderous.sangam.indianrail I/dalvikvm: ++++++++++++++++++++++++++++++++++++++++++++
02-04 20:08:56.384 13919-13926/com.xynderous.sangam.indianrail I/dalvikvm: JIT_INFO: ME Issues while compiling trace Ljava/util/Arrays;fill, offset 7
02-04 20:08:56.384 13919-13926/com.xynderous.sangam.indianrail I/dalvikvm: The trace provoked a spill.
02-04 20:08:56.384 13919-13926/com.xynderous.sangam.indianrail I/dalvikvm: Trying less registerization from 1 to 0
Upvotes: 0
Views: 148
Reputation: 2562
I know English may not be your first language, but your naming conventions are all over the place. Set some standards for yourself and be consistent. These guidelines by Google are a good place to start - https://google.github.io/styleguide/javaguide.html#s5-naming
As to your specific problem, an empty string is never a good idea for a variable/parameter/field name. For parameters being passed between activities, it's best to use a constant to refer to the field names to prevent typos from causing problems.
For example:
public static final String TRAIN_NUMBER = "trainNumber";
Then when you create your intent:
final Intent intent = new new Intent(Train_Name.this, TrainRoute.class);
final TextView trainNumberView = (TextView)findViewById(R.id.trainNumberTxt);
final String trainNumber = trainNumberView.getText().toString();
Log.w(TAG,"Starting TrainRoute with TRAIN_NUMBER: " + String.valueOf(trainNumber));
intent.putExtra(TRAIN_NUMBER,trainNumber);
startActivity(intent);
break;
Then in your activity:
public TrainRoute extends Activity {
String trainNumber;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
if (intent != null && intent.hasExtra(TRAIN_NUMBER)) {
trainNumber = intent.getStringExtra(TRAIN_NUMBER);
}
Log.w(TAG, "Activity started with TRAIN_NUMBER: " + String.valueOf(trainNumber));
// set your content view, lookup your views
// eg.,
// setContentView(...)
// trTxt = (TextView)findViewById(R.id.trainNumberTxt);
trainRoutList = (ListView) findViewById(R.id.trainRoutList);
trTxt.setText(trainNumber);
trTxt.setEnabled(true);
}
}
Upvotes: 1
Reputation: 756
just use getIntent().getStringExtra() in your second activity while getting string values from Intent
Upvotes: 1
Reputation: 11336
Your extra's TAG can't be an empty String. Change it to something like this:
case R.id.trainRoute:
Intent intent = new Intent(Train_Name.this,TrainRoute.class);
trainNumber=(TextView) findViewById(R.id.trainNumberTxt);
intent.putExtra("trainNumber",trainNumber.getText().toString());
startActivity(intent);
break;
And on your second activity:
trTxt.setText(getIntent().getExtras().getString("trainNumber"));
Upvotes: 0