如何在 Calling API 中保存值 Intent?
How to save value Intent inside Calling API?
我无法通过调用 API 在 Intent 中保存值,调用 API 显示其值,但我无法将其保存到 Intent。
这是我的代码
节省意向
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final Intent mIntent = new Intent(view.getContext(), KelasOnlineActivity.class);
mIntent.putExtra("link",kelas.get(position).getUrl());
sharedPrefKelas.saveSPString(SharedPrefKelas.SP_ID_Kelas, "");
Call<Kelas> result = mApiInterface.KelasCall(kelas.get(position).getUrl(), sharedPrefManager.getSpIdMember(), sharedPrefManager.getSpLevelMember(), sharedPrefManager.getSpToken());
result.enqueue(new Callback<Kelas>() {
@Override
public void onResponse(Call<Kelas> call, Response<Kelas> response) {
if (response.isSuccessful()) {
Kelas mkelas = response.body();
Log.d("data", "Nyoba Status Kelas: " + mkelas.statuschat);
mIntent.putExtra("Status",mkelas.statuschat);
} else {
Log.i("debug", "cekdata: GA BERHASIL");
}
}
@Override
public void onFailure(Call<Kelas> call, Throwable t) {
Log.e("debug", "onFailure: ERROR > " + t.getMessage());
}
});
mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
view.getContext().startActivity(mIntent);
获得意图
Intent intent;
intent = getActivity().getIntent();
url= intent.getStringExtra("link");
status = intent.getStringExtra("Status");
Toast.makeText(getActivity(), url+status, Toast.LENGTH_LONG).show();
我可以在Toast中显示url但状态不显示,状态显示为null,
这是问题图片
谁能帮帮我?如果有人能解决我的问题,我将不胜感激
您在 onResponse
回调之外调用 startActivity
:这样,它肯定会在 onResponse 之前调用新的 activity,并且肯定在状态保存事件之前.
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final Intent mIntent = new Intent(view.getContext(), KelasOnlineActivity.class);
mIntent.putExtra("link",kelas.get(position).getUrl()); //This is outside of onResponse, so it's added correctly
sharedPrefKelas.saveSPString(SharedPrefKelas.SP_ID_Kelas, "");
Call<Kelas> result = mApiInterface.KelasCall(kelas.get(position).getUrl(), sharedPrefManager.getSpIdMember(), sharedPrefManager.getSpLevelMember(), sharedPrefManager.getSpToken());
result.enqueue(new Callback<Kelas>() {
@Override
public void onResponse(Call<Kelas> call, Response<Kelas> response) {
if (response.isSuccessful()) {
Kelas mkelas = response.body();
Log.d("data", "Nyoba Status Kelas: " + mkelas.statuschat);
mIntent.putExtra("Status",mkelas.statuschat);
//You should put them here
mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
view.getContext().startActivity(mIntent);
} else {
Log.i("debug", "cekdata: GA BERHASIL");
}
}
@Override
public void onFailure(Call<Kelas> call, Throwable t) {
Log.e("debug", "onFailure: ERROR > " + t.getMessage());
}
});
//And not here
//mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//view.getContext().startActivity(mIntent);
尝试
private String tmp = "";
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final Intent mIntent = new Intent(view.getContext(), KelasOnlineActivity.class);
mIntent.putExtra("link",kelas.get(position).getUrl());
sharedPrefKelas.saveSPString(SharedPrefKelas.SP_ID_Kelas, "");
Call<Kelas> result = mApiInterface.KelasCall(kelas.get(position).getUrl(), sharedPrefManager.getSpIdMember(), sharedPrefManager.getSpLevelMember(), sharedPrefManager.getSpToken());
result.enqueue(new Callback<Kelas>() {
@Override
public void onResponse(Call<Kelas> call, Response<Kelas> response) {
if (response.isSuccessful()) {
Kelas mkelas = response.body();
Log.d("data", "Nyoba Status Kelas: " + mkelas.statuschat);
tmp = mkelas.statuschat;
} else {
Log.i("debug", "cekdata: GA BERHASIL");
}
}
@Override
public void onFailure(Call<Kelas> call, Throwable t) {
Log.e("debug", "onFailure: ERROR > " + t.getMessage());
}
});
mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mIntent.putExtra("Status", tmp);
view.getContext().startActivity(mIntent);
我无法通过调用 API 在 Intent 中保存值,调用 API 显示其值,但我无法将其保存到 Intent。 这是我的代码 节省意向
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final Intent mIntent = new Intent(view.getContext(), KelasOnlineActivity.class);
mIntent.putExtra("link",kelas.get(position).getUrl());
sharedPrefKelas.saveSPString(SharedPrefKelas.SP_ID_Kelas, "");
Call<Kelas> result = mApiInterface.KelasCall(kelas.get(position).getUrl(), sharedPrefManager.getSpIdMember(), sharedPrefManager.getSpLevelMember(), sharedPrefManager.getSpToken());
result.enqueue(new Callback<Kelas>() {
@Override
public void onResponse(Call<Kelas> call, Response<Kelas> response) {
if (response.isSuccessful()) {
Kelas mkelas = response.body();
Log.d("data", "Nyoba Status Kelas: " + mkelas.statuschat);
mIntent.putExtra("Status",mkelas.statuschat);
} else {
Log.i("debug", "cekdata: GA BERHASIL");
}
}
@Override
public void onFailure(Call<Kelas> call, Throwable t) {
Log.e("debug", "onFailure: ERROR > " + t.getMessage());
}
});
mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
view.getContext().startActivity(mIntent);
获得意图
Intent intent;
intent = getActivity().getIntent();
url= intent.getStringExtra("link");
status = intent.getStringExtra("Status");
Toast.makeText(getActivity(), url+status, Toast.LENGTH_LONG).show();
我可以在Toast中显示url但状态不显示,状态显示为null,
这是问题图片
谁能帮帮我?如果有人能解决我的问题,我将不胜感激
您在 onResponse
回调之外调用 startActivity
:这样,它肯定会在 onResponse 之前调用新的 activity,并且肯定在状态保存事件之前.
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final Intent mIntent = new Intent(view.getContext(), KelasOnlineActivity.class);
mIntent.putExtra("link",kelas.get(position).getUrl()); //This is outside of onResponse, so it's added correctly
sharedPrefKelas.saveSPString(SharedPrefKelas.SP_ID_Kelas, "");
Call<Kelas> result = mApiInterface.KelasCall(kelas.get(position).getUrl(), sharedPrefManager.getSpIdMember(), sharedPrefManager.getSpLevelMember(), sharedPrefManager.getSpToken());
result.enqueue(new Callback<Kelas>() {
@Override
public void onResponse(Call<Kelas> call, Response<Kelas> response) {
if (response.isSuccessful()) {
Kelas mkelas = response.body();
Log.d("data", "Nyoba Status Kelas: " + mkelas.statuschat);
mIntent.putExtra("Status",mkelas.statuschat);
//You should put them here
mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
view.getContext().startActivity(mIntent);
} else {
Log.i("debug", "cekdata: GA BERHASIL");
}
}
@Override
public void onFailure(Call<Kelas> call, Throwable t) {
Log.e("debug", "onFailure: ERROR > " + t.getMessage());
}
});
//And not here
//mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//view.getContext().startActivity(mIntent);
尝试
private String tmp = "";
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final Intent mIntent = new Intent(view.getContext(), KelasOnlineActivity.class);
mIntent.putExtra("link",kelas.get(position).getUrl());
sharedPrefKelas.saveSPString(SharedPrefKelas.SP_ID_Kelas, "");
Call<Kelas> result = mApiInterface.KelasCall(kelas.get(position).getUrl(), sharedPrefManager.getSpIdMember(), sharedPrefManager.getSpLevelMember(), sharedPrefManager.getSpToken());
result.enqueue(new Callback<Kelas>() {
@Override
public void onResponse(Call<Kelas> call, Response<Kelas> response) {
if (response.isSuccessful()) {
Kelas mkelas = response.body();
Log.d("data", "Nyoba Status Kelas: " + mkelas.statuschat);
tmp = mkelas.statuschat;
} else {
Log.i("debug", "cekdata: GA BERHASIL");
}
}
@Override
public void onFailure(Call<Kelas> call, Throwable t) {
Log.e("debug", "onFailure: ERROR > " + t.getMessage());
}
});
mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mIntent.putExtra("Status", tmp);
view.getContext().startActivity(mIntent);