简体   繁体   English

我如何将价值从一项活动传递到另一项活动

[英]How do i pass value from one activity to another activity

How do i pass the value which is the subjetfile.getSubjectID from the ListView to another activity which is SubjectActivity, so that $id=$_GET['subjectID']; 我如何将ListView的subjetfile.getSubjectID值传递给另一个活动,即SubjectActivity,以便$ id = $ _ GET ['subjectID']; in my php code won't be null? 在我的PHP代码不会为空? Anyone can help? 有人可以帮忙吗? I have a list of subject which place inside a listView, i would like to pass it to SubjectActivity when i click any item in the listView, and the activity display the detail of the subject, but the php code seems not working because of the $id. 我有一个放置在listView内的主题列表,当我单击listView中的任何项目时,我想将其传递给SubjectActivity,并且该活动显示主题的详细信息,但是由于$,PHP代码似乎无法正常工作ID。 If anyone can help i will be appreciate, thanks! 如果有人能帮助我,我将不胜感激,谢谢!

 public class SubjectActivity extends AppCompatActivity { private ImageView imageViewDefault; private TextView textViewDefaultName; private TextView textViewDefaultDescription1; private TextView textViewDefaultDescription2; private static final String GET_URL_SUBJECT = "https://arlearn.000webhostapp.com/getSubject.php"; private static final int TAG1 = 1; private ProgressDialog pDialog; private subjectFile subjectfile; private String result = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_subject); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); imageViewDefault = (ImageView)findViewById(R.id.imageViewSubject); textViewDefaultName = (TextView)findViewById(R.id.textViewName); textViewDefaultDescription1 = (TextView)findViewById(R.id.textViewContent1); textViewDefaultDescription2 = (TextView)findViewById(R.id.textViewContent2); pDialog = new ProgressDialog(this); } public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.subject, menu); return true; } public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if(id == R.id.action_refresh) { getSubjectContent(getApplicationContext(), GET_URL_SUBJECT); } return super.onOptionsItemSelected(item); } private void getSubjectContent(Context context, String url) { RequestQueue request = Volley.newRequestQueue(context); if (!pDialog.isShowing()) pDialog.setMessage("Syn with server..."); pDialog.show(); JsonArrayRequest requestsubject = new JsonArrayRequest(url, new Response.Listener<JSONArray>() { @Override public void onResponse(JSONArray response) { try { for (int i = 0; i < response.length(); i++) { JSONObject subjectResponse = (JSONObject) response.get(i); String name = subjectResponse.getString("name"); String image = subjectResponse.getString("image"); String description1 = subjectResponse.getString("Description1"); String description2 = subjectResponse.getString("Description2"); subjectfile = new subjectFile(name, image, description1, description2); } loadFile(); if (pDialog.isShowing()) pDialog.dismiss(); }catch(Exception e) { Toast.makeText(getApplicationContext(), "Error:" + e.getMessage(), Toast.LENGTH_LONG).show(); e.printStackTrace(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Log.i("tagconvertstr", "["+result+"]"); Toast.makeText(getApplicationContext(), "Error" + error.getMessage(), Toast.LENGTH_LONG).show(); error.printStackTrace(); if (pDialog.isShowing()) pDialog.dismiss(); } } ); request.add(requestsubject); } private void loadFile() { ByteArrayOutputStream baos = new ByteArrayOutputStream(); byte[] imageBytes = baos.toByteArray(); imageBytes = Base64.decode(subjectfile.getImage(), Base64.DEFAULT); Bitmap decodeImage = BitmapFactory.decodeByteArray(imageBytes, 0, imageBytes.length); imageViewDefault.setImageBitmap(decodeImage); textViewDefaultName.setText(subjectfile.getName()); textViewDefaultDescription1.setText(subjectfile.getDescription1()); textViewDefaultDescription2.setText(subjectfile.getDescription2()); } } 
 <?php include("connection1.php"); // connecting to db $conn = mysqli_connect($hostname_localhost, $username_localhost, $password_localhost, $database_localhost); /* check connection */ if (mysqli_connect_errno()) { echo "Error: Connect failed: %s\\n"; exit(); } $response = array(); $id=$_GET['subjectID']; $query = "SELECT image, name, Description1, Description2 from subject WHERE subjectID = ".$id; /* Select queries return a resultset */ if ($result = mysqli_query($conn, $query)) { $response = array(); while ($row = mysqli_fetch_array($result)) { $item = array(); $item["image"] = base64_encode($row["image"]); $item["name"] = $row["name"]; $item["Description1"] = $row["Description1"]; $item["Description2"] = $row["Description2"]; array_push($response, $item); } mysqli_free_result($result); } else{ $response["success"] = 0; $response["message"] = "Required field(s) is missing"; } echo json_encode($response); /* close connection */ mysqli_close($conn); ?> 
 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { subjectFile subjectfile = imageAdapter.getItem(position); Log.i("Database", subjectfile.getSubjectID()); Intent intent = new Intent(getActivity(), SubjectActivity.class); startActivity(intent); } }); 

Follow it - 跟着它 -

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                subjectFile subjectfile = imageAdapter.getItem(position);
                Log.i("Database", subjectfile.getSubjectID());
                Intent intent = new Intent(getActivity(), SubjectActivity.class);
intent.putExtra("subject_id", subjectfile.getSubjectID());
startActivity(intent);
            }
        });

Access that intent on SubjectActivity activity's onCreate() method. 访问有关SubjectActivity活动的onCreate()方法的意图。

String subjectId = getIntent().getStringExtra("subject_id");

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM