2 버튼, 1을 사용하여 URL을 가져오고 두 번째를 SharedPreference에 저장하면 작동하지만 두 번째 버튼에 FETCH 메서드를 포함하려고하면 URL이 SharedPreference에 저장되지 않으므로 두 번째 페이지로 보내지 않습니다. . 버튼 하나로 작동하도록하려면 어떻게해야합니까? Pls 도움. 고급의 Tqvm. Android에 대해 배우기 시작 했으므로 모든 설명을 대단히 감사합니다.
1. MainActivity.java
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private ImageView iv;
private Button buttonGet, buttonDisplay;
private EditText adminUsername, imageUrl;
private ProgressDialog loading;
String imagePath;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
iv = (ImageView)findViewById(R.id.imageView);
buttonGet = (Button)findViewById(R.id.buttonGet);
buttonGet.setOnClickListener(this);
buttonDisplay = (Button) findViewById(R.id.buttonDisplay);
buttonDisplay.setOnClickListener(this);
adminUsername = (EditText) findViewById(R.id.etAdminUserName);
imageUrl = (EditText) findViewById(R.id.etImageUrl);
}
private void getData() {
loading = ProgressDialog.show(this,"Please wait...","Fetching...",false,false);
String url = Config.DATA_URL+adminUsername.getText().toString().trim();
StringRequest stringRequest = new StringRequest(url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
loading.dismiss();
showJSON(response);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(MainActivity.this,error.getMessage().toString(),Toast.LENGTH_LONG).show();
}
});
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}
private void showJSON(String response){
String image="";
try {
JSONObject jsonObject = new JSONObject(response);
JSONArray result = jsonObject.getJSONArray(Config.JSON_ARRAY);
JSONObject employeeData = result.getJSONObject(0);
image = employeeData.getString(Config.KEY_IMAGE);
} catch (JSONException e) {
e.printStackTrace();
}
imageUrl.setText(image);
imagePath = image;
}
public void saveSettings(View v){
//Toast.makeText(getApplicationContext(), "Saving Data...", Toast.LENGTH_SHORT).show();
SharedPreferences preferences = getSharedPreferences("UserDetails", MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
//editor.putString("passUsername", adminUsername.getText().toString());
editor.putString("imageUrl", imagePath);
editor.commit();
finish();
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.buttonGet:
getData();
break;
case R.id.buttonDisplay:
getData();
saveSettings(v);
Intent secondPage = new Intent(this, Main2Activity.class);
startActivity(secondPage);
break;
}
}
}
2. Main2Activity.java
public class Main2Activity extends AppCompatActivity {
ImageView Iv2;
String sendImagePath;
EditText editText;
private Bitmap bitmap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
Iv2 = (ImageView) findViewById(R.id.imageView2);
editText = (EditText) findViewById(R.id.editText);
loadSettings();
bitmap = getBitmapFromUrl(sendImagePath);
Iv2.setImageBitmap(bitmap);
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
private void loadSettings(){
//Toast.makeText(getApplicationContext(), "Loading Data...", Toast.LENGTH_LONG).show();
SharedPreferences preferences = getSharedPreferences("UserDetails", MODE_PRIVATE);
// If value for key not exist then
// return second param value - In this case "..."
sendImagePath = preferences.getString("imageUrl", "...");
editText.setText(sendImagePath);
}
public Bitmap getBitmapFromUrl(String src) {
try {
URL url = new URL(src);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
Bitmap myBitmap = BitmapFactory.decodeStream(input);
return myBitmap;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
3.Config.java
public class Config {
public static final String DATA_URL = "http://10.0.3.2/folder/getPic.php?username=";
public static final String KEY_IMAGE = "image";
public static final String JSON_ARRAY = "result";
}
귀하는 imagePath
Volley가 귀하의 청원에 대한 응답을 받기 전에 이를 얻으려고합니다 . 다음과 같이 시도하십시오.
@Override
public void onResponse(String response) {
loading.dismiss();
showJSON(response);
saveSettings();
Intent secondPage = new Intent(MainActivity.this, Main2Activity.class);
startActivity(secondPage);
}
},
.
.
.
@Override
public void onClick(View v) {
getData();
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다