Reputation: 970
Explanation: My application having two activity namely Summary_Card and Score_Card. In which, i enabled this getSupportActionBar().setDisplayHomeAsUpEnabled(true); in the last activity accordingly to name given.
I passed the data from Summary_card to GetValue.java through Intent.I also passed the data from Getvalue.java to Score_card through Intent.In Score_card i got that data which was send from GetValue.java. I explained my whole scenario.
Getvalue is a class not an activity.
Explanation the problem which i going to get according to my implemented scenario.
When i press back button of Score_card which reside on actionBar. I refreshed my Summary_card i mean my previous activity.Similarly, when i press back button of my device(Mobile) my previous_activity not refreshed.
I don't want to refresh my previous(Summary_card) activity after pressing back button of my current activity(Score_card) which reside on actionBar (not device back button).
What is the solution of this problem?
Here, is my summary_card. Summary_card provide the data to GetValue.java class.
public class SummaryCard extends AppCompatActivity {
Toolbar toolbar;
Button btnFullScore;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_summary_card);
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
Intent extras = getIntent();
btnFullScore = (Button) findViewById(R.id.FullScore);
btnFullScore.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
GetValue gv = new GetValue(getApplicationContext());
gv.setFullUrl(match_key);
gv.setAccessToken(access_token);
gv.execute();
}
});
}
}
Here, is my GetValue.java consider as Summary_card. I set the data for score_card from GetValue.java class.
public class GetValue extends AsyncTask<String,String,String> {
private static String url="";
String match_type="";
String[] tab_title;
String[] team_name;
String bat_order="",jsonStr="";
String tabTeamname="";
String name_of_team="";
String tabData="";
String match_key="";
List<String> lst_overview=null;
public String access_token="";
public String accessToken="";
String st_overview="",short_name="",msg_info="";
Context context;
public String tabVlaue="";
public GetValue(Context context)
{
this.context=context;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected String doInBackground(String... params) {
match_key=getFullUrl();
accessToken=getAccessToken();
url="https://api.litzscore.com/rest/v2/match/"+match_key+"/?access_token="+accessToken;
// url="http://10.0.2.2/JSON/SaEngfullcard.php";
jsonStr=new CallAPI().GetResponseGetMethod(url);
if(jsonStr!=null){
try {
JSONObject mainObject = new JSONObject(jsonStr);
JSONObject dataObject = mainObject.getJSONObject("data");
JSONObject cardObject = dataObject.getJSONObject("card");
lst_overview=new ArrayList<>();
if(cardObject.getString("status_overview").equals("abandoned")){
if(!cardObject.isNull("msgs")) {
JSONObject msgs=cardObject.getJSONObject("msgs");
msg_info=msgs.getString("info");
}
st_overview=cardObject.getString("status_overview");
short_name=cardObject.getString("short_name");
}
else {
match_type = cardObject.getString("format");
JSONArray batting_order = cardObject.getJSONArray("batting_order");
JSONObject innings = cardObject.getJSONObject("innings");
JSONArray inn_arr = innings.names();
for (int i = 0; i < batting_order.length(); i++) {
JSONArray ining_arr = batting_order.getJSONArray(i);
tabTeamname += ining_arr.getString(0) + ":";
for (int j = 0; j < ining_arr.length(); j++) {
if (j == 0) {
tabVlaue += ining_arr.getString(j) + "_";
}
if (j == 1) {
tabVlaue += ining_arr.getString(j);
}
}
tabVlaue += ",";
bat_order = tabVlaue;
}
tab_title = bat_order.split(",");
if (match_type.equals("test") || match_type.equals("one-day")) {
for (int j = 0; j < tab_title.length; j++) {
for (int k = 0; k < inn_arr.length(); k++) {
if (tab_title[j].equals(inn_arr.getString(k))) {
tabData += innings.getJSONObject(inn_arr.getString(k)) + "`";
}
}
}
}
if (match_type.equals("t20")) {
tabData = "";
for (int j = 0; j < tab_title.length; j++) {
if (j == 0) {
for (int k = 0; k < inn_arr.length(); k++) {
if (tab_title[0].equals(inn_arr.getString(k))) {
tabData = innings.getJSONObject(inn_arr.getString(k)) + "`";
}
}
} else if (j == 1) {
for (int k = 0; k < inn_arr.length(); k++) {
if (tab_title[1].equals(inn_arr.getString(k))) {
tabData += innings.getJSONObject(inn_arr.getString(k)) + "`";
}
}
} else if (j == 2) {
for (int k = 0; k < inn_arr.length(); k++) {
if (tab_title[2].replace("2", "superover").equals(inn_arr.getString(k))) {
tabData += innings.getJSONObject(inn_arr.getString(k)) + "`";
}
}
} else if (j == 3) {
for (int k = 0; k < inn_arr.length(); k++) {
if (tab_title[3].replace("2", "superover").equals(inn_arr.getString(k))) {
tabData += innings.getJSONObject(inn_arr.getString(k)) + "`";
}
}
}
}
}
JSONObject teams = cardObject.getJSONObject("teams");
JSONArray team_arr = teams.names();
team_name = tabTeamname.split(":");
for (int i = 0; i < team_name.length; i++) {
for (int j = 0; j < team_arr.length(); j++) {
if (team_name[i].equals(team_arr.getString(j))) {
name_of_team += teams.getJSONObject(team_arr.getString(j)) + "=";
}
}
}
}
}
catch (JSONException e){
e.printStackTrace();
}
}
else{
}
return null;
}
public void setFullUrl(String str){
match_key=str;
}
public String getFullUrl(){
return match_key;
}
public void setAccessToken(String accessToken){
this.access_token=accessToken;
}
public String getAccessToken(){
return this.access_token;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
if(st_overview.equals("abandoned"))
{
DialogAbandoned ad=new DialogAbandoned(context);
ad.setDialog(short_name,msg_info+".");
}
else {
Intent intent = new Intent(context, ScoreCard.class);
intent.putExtra("tabvalue", tabVlaue);
intent.putExtra("teamName", name_of_team);
intent.putExtra("tabData", tabData);
intent.putExtra("match_key", match_key);
intent.putExtra("access_token",accessToken);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
}
}
Here, is my score_card
public class ScoreCard extends AppCompatActivity {
Toolbar toolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_score_card);
toolbar=(Toolbar)findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
Intent i=getIntent();
tab_value=i.getStringExtra("tabvalue");
tabData=i.getStringExtra("tabData");
name_of_team=i.getStringExtra("teamName");
match_key=i.getStringExtra("match_key");
access_token=i.getStringExtra("access_token");
}
}
In above class i got the data which was sent from GetValue.java
Here, is my manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.angelnx.cricvilla.cricvilla">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/MyMaterialTheme">
<activity
android:name=".SplashScreen"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity"
android:label="@string/app_name"></activity>
<activity android:name=".NotStartedMatchDetails">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity"></meta-data>
</activity>
<activity
android:name=".SummaryCard"
android:theme="@style/MyMaterialTheme"
android:parentActivityName=".MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />
</activity>
<activity android:name=".ScoreCard"
android:parentActivityName=".SummaryCard">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".SummaryCard" />
</activity>
<activity android:name=".PlayerInfoDetails"
android:parentActivityName=".MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />
</activity>
<activity android:name=".FullScore"></activity>
<!-- ATTENTION: This was auto-generated to add Google Play services to your project for
App Indexing. See https://g.co/AppIndexing/AndroidStudio for more information. -->
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
</application>
</manifest>
Now, again i discus my problem. Problem :I don't want to get the refresh my previous activty(Summary_Card) after pressing the back button of my score_card.
Please, help me to solve out this problem
Upvotes: 1
Views: 1387
Reputation: 598
If We want to go to NewActivity.java from CurrentActivity.java and Don't want that our CurrentActivity.java got refereshed than do as blow :
Intent intent=new Intent(CurrentActivity.this,NewActivity.class);
startActivity(intent);
Not using finish(); here because, we have to come back from NewActivity to our CurrentActivity.
Now, When we want to come back from NewActivity to our CurrentActivity, then on the Click event of Back button just write finish();
and don't do like below :
Intent intent=new Intent(NewActivity.this,CurrentActivity.class);
startActivity(intent);
because it will reopen your CurrentActivity.
Upvotes: 1