2017-12-24 1 views
0

ListView의 Subjetfile.getSubjectID 값을 SubjectActivity 인 다른 액티비티로 전달하면 $ id = $ _ GET [ 'subjectID']; 내 PHP 코드에서 null이되지 않습니다? 누구든지 도울 수 있니? ListView 내부에있는 피사체 목록이 있는데 listView에서 항목을 클릭하면 SubjectActivity로 전달하고 피사체 세부 정보를 표시하지만 PHP 코드는 $ 때문에 작동하지 않는 것 같습니다. 신분증. 아무도 내가 감사 드리도록 도울 수 있다면, 고마워!한 액티비티에서 다른 액티비티로 값을 전달하는 방법

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 
 
\t include("connection1.php"); 
 

 
\t // connecting to db 
 
\t $conn = mysqli_connect($hostname_localhost, $username_localhost, $password_localhost, $database_localhost); 
 

 
\t /* check connection */ 
 
\t if (mysqli_connect_errno()) { 
 
\t \t echo "Error: Connect failed: %s\n"; 
 
\t \t exit(); 
 
\t } 
 

 
\t $response = array(); 
 
\t 
 

 
\t $id=$_GET['subjectID']; 
 
\t 
 
\t $query = "SELECT image, name, Description1, Description2 from subject WHERE subjectID = ".$id; 
 
\t 
 
\t 
 
\t /* Select queries return a resultset */ 
 
\t if ($result = mysqli_query($conn, $query)) 
 
\t { 
 
\t  $response = array(); 
 
\t  
 
\t  while ($row = mysqli_fetch_array($result)) 
 
\t  { 
 
\t   $item = array(); 
 
\t   $item["image"] = base64_encode($row["image"]); 
 
\t \t  $item["name"] = $row["name"]; 
 
\t \t  $item["Description1"] = $row["Description1"]; 
 
\t \t  $item["Description2"] = $row["Description2"]; 
 
\t \t  array_push($response, $item); 
 
\t  } 
 
\t  mysqli_free_result($result); 
 
\t } 
 

 
\t else{ 
 
\t  $response["success"] = 0; 
 
     $response["message"] = "Required field(s) is missing"; 
 
\t } 
 
\t 
 
\t echo json_encode($response); 
 
\t /* close connection */ 
 
\t 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); 
 
      } 
 
     });

+0

가능한 중복 https://stackoverflow.com/questions/2091465/how-do-i-pass-data-between-activities-in -android-application) – BenRoob

답변

2

그것을 따라 -

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); 
      } 
     }); 

액세스하는 SubjectActivity 활동의 onCreate() 방법에 의도.

String subjectId = getIntent().getStringExtra("subject_id"); 
[I 안드로이드 응용 프로그램에서 활동 사이에 데이터를 전달하려면 어떻게합니까?] (의
+0

어떻게해야합니까? PHP에서 $ id는 subjectId도 얻을 수 있습니까? –

+0

PHP 스크립트가 물론 서버에 있습니다. 그래서 당신은 네트워크 호출을 구현해야합니다. 더 나은 당신은 발리, 안드로이드 networkng 등 모든 네트워크 라이브러리를 사용하여 좋은 네트워크 라이브러리입니다. –

+0

그래서 subjectID를 삽입하려면 다른 StringRequest를 수행해야합니까? –

관련 문제