2017-04-04 6 views
-2

誰かが私を助けることができますか?私はアダプタを持つlistViewにはそれぞれ3 Textviewsが含まれています。 1つの選択されたテキストを他のアクティビティに渡したいだけです 私のコードは です。各リストビューには3つのTextview( "noreg"、 "name"、 "imo")が含まれています。私はちょうどonItemClickリストビューアアダプタから特定のテキストを送信

@Override 
 
    public void onCreate(Bundle savedInstanceState) 
 
    { 
 
     super.onCreate(savedInstanceState); 
 
    } 
 

 
    @Override 
 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
 
          Bundle savedInstanceState){ 
 
     myFragmentView = inflater.inflate(R.layout.fragment_search, container, false); 
 
     ed = (SearchView) getActivity().findViewById(R.id.textSearch); 
 
     sc = (ImageButton) getActivity().findViewById(R.id.scanCamera); 
 
     hom = (ImageButton) getActivity().findViewById(R.id.btnhome); 
 
     lv = (ListView) myFragmentView.findViewById(R.id.resultList); 
 
     if(getArguments() !=null) { 
 
      word = this.getArguments().getString("word"); 
 
     } 
 

 
     new GetResult().execute(); 
 

 
     lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
 
      @Override 
 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
 
       
 

 
       Intent intent = new Intent(getActivity(), MainActivity.class); 
 
       intent.putExtra("word", noreg); 
 
       startActivity(intent); 
 
      } 
 
     }); 
 

 

 
     return myFragmentView; 
 
    } 
 

 
    private class GetResult extends AsyncTask<Void, Void, Void>{ 
 

 
     @Override 
 
     protected void onPreExecute() { 
 
      super.onPreExecute(); 
 
      pDialog = new ProgressDialog(getActivity()); 
 
      pDialog.setMessage("Please wait..."); 
 
      pDialog.setCancelable(false); 
 
      pDialog.show(); 
 
     } 
 

 
     @Override 
 
     protected Void doInBackground(Void... arg0){ 
 
      RequestQueue queue = Volley.newRequestQueue(getActivity().getApplicationContext()); 
 
      StringRequest stringRequest = new StringRequest(Request.Method.POST, search_url, new Response.Listener<String>() { 
 
       @Override 
 
       public void onResponse(String response) { 
 
        try { 
 
         JSONArray jsonArray = new JSONArray(response); 
 
          final int result = jsonArray.length(); 
 
          resultlist = new ArrayList<>(); 
 
          for (int i = 0; i < result; i++){ 
 
           JSONObject jsonObject = jsonArray.getJSONObject(i); 
 
           String noreg = jsonObject.getString("noreg"); 
 
           String nama = jsonObject.getString("nama"); 
 
           String imo = jsonObject.getString("imo"); 
 

 
           HashMap<String, String> datastat = new HashMap<>(); 
 

 
           datastat.put("noreg", noreg); 
 
           datastat.put("nama", nama); 
 
           datastat.put("imo", imo); 
 

 
           resultlist.add(datastat); 
 

 
           ListAdapter adapter = new SimpleAdapter(
 
             getActivity(), resultlist, 
 
             R.layout.list_item, new String[]{"nama", "noreg", 
 
             "imo"}, new int[]{R.id.namakapal, R.id.noreg, R.id.imo}); 
 

 
           lv.setAdapter(adapter); 
 

 
          } 
 
        } catch (JSONException e) { 
 
         e.printStackTrace(); 
 
        } 
 
       } 
 
      }, new Response.ErrorListener() { 
 
       @Override 
 
       public void onErrorResponse(VolleyError error) { 
 

 
       } 
 
      }) 
 
      { 
 
       @Override 
 
       protected Map<String, String> getParams() throws AuthFailureError { 
 
        Map<String, String> params = new HashMap<String, String>(); 
 

 
        params.put("noregister", word); 
 
        return params; 
 
       } 
 
      }; 
 
      queue.add(stringRequest); 
 

 
      return null; 
 
     } 
 

 
     @Override 
 
     protected void onPostExecute(Void result) { 
 
      super.onPostExecute(result); 
 
      if (pDialog.isShowing()) 
 
       pDialog.dismiss(); 
 

 
     } 
 

 
    } 
 

 
}

他の活動に "NOREG" を渡したい

答えて

0

は、このコードを試してみてください....ありがとう。

lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

     String selected1 = ((TextView) view.findViewById(R.id.name)).getText().toString(); 

        Toast toast1 = Toast.makeText(getApplicationContext(), selected1, Toast.LENGTH_SHORT); 
        toast1.show(); 
       Intent intent = new Intent(getActivity(), MainActivity.class); 
       intent.putExtra("word", noreg); 
       startActivity(intent); 
      } 
     }); 
+0

ありがとう、その仕事 – rizal

+0

ようこそ@rizal +1。 –

+0

私はちょうどそのコードを使用して問題を発見しました。私はpostメソッドを使いlistviewに結果を表示します。私は10リストを持っていると私はリスト5をクリックしたと言うと、textViewは5の代わりに最初のリストのテキストを表示します。どの部分を変更する必要がありますか? – rizal

関連する問題