2015-09-14 3 views
0

У меня есть проблема с получением текста из gridview и, в конечном итоге, передача их другому действию с использованием putextra в новых целях, но каждый раз, когда я пытаюсь получить текстовые приложения, останавливается. Вот кодПолучить текст из GridView

public class MainActivity extends ActionBarActivity { 
    String cJSON; 
    private ProgressDialog pDialog; 
    GridView gvColl; 

    private static final String TAG_RESULTS = "result"; 
    private static final String TAG_ID = "ID"; 
    private static final String TAG_NAME = "Nome"; 
    JSONArray worker_lst = null; 
    ArrayList<HashMap<String, String>> tableColl = new ArrayList<HashMap<String, String>>(); 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     gvColl = (GridView) this.findViewById(R.id.gvCollab); 
     tableColl = new ArrayList<HashMap<String,String>>(); 
     getData(); 
    } 

    protected void showList() { 
     try { 
      JSONObject jsonObj = new JSONObject(cJSON); 
      worker_lst = jsonObj.getJSONArray(TAG_RESULTS); 

      for (int i = 0; i < worker_lst.length(); i++) { 
       JSONObject c = worker_lst.getJSONObject(i); 
       String id = c.getString(TAG_ID); 
       String name = c.getString(TAG_NAME); 
       HashMap<String, String> persons = new HashMap<String, String>(); 
       persons.put(TAG_NAME, name); 
       persons.put(TAG_ID, id); 
       tableColl.add(persons); 
      } 

      gvColl = (GridView) findViewById(R.id.gvCollab); 
      gvColl.setAdapter(new JAdapter(MainActivity.this, tableColl)); 

      gvColl.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
       public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 
// this work properly. I don’t be able to get id and name from grid 

         Toast.makeText(getApplicationContext(), "Collaboratore Scelto : " + position, Toast.LENGTH_LONG).show(); 



       } 
      }); 


      }catch (JSONException e) { 
      e.printStackTrace(); 
     } 

    } 
+0

Может ли вы показать ваш журнал кот –

+0

Вашего приложение остановки перед загрузкой данных в сетке? пожалуйста, поделитесь своим исключением, с которым столкнулись –

ответ

0

Использовать этот код в Вашей деятельности, заменив его ...

gvColl.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
       public void onItemClick(AdapterView<?> parent, View v, 
         int position, long id) { 
        // this work properly. I don’t be able to get id and name 
        // from grid 

        Toast.makeText(getApplicationContext(), 
          "Collaboratore Scelto : " + position, 
          Toast.LENGTH_LONG).show(); 
       String currentName; tableColl.get(position).get(TAG_NAME); 
        String currentId=tableColl.get(position).get(TAG_ID); 

       } 
      }); 

Теперь Вы можно две строки Далее ...

+0

Хорошо! Он отлично работает! поэтому, (я думаю), я могу передать currentID и currentName в другое действие, используя putextra в своих намерениях. Надеюсь, это правильно. Однако код правильный! Спасибо – Jayelef

+0

ваш прием ... просто проголосуйте, вы найдете ответ работает нормально ... на левой стороне –

+0

Наверняка !! Теперь..эты идут, чтобы решить новую проблему !! – Jayelef

0

Я думаю, вы должны попробовать это заменив свой метод -

gvColl.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
       public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 
// this work properly. I don’t be able to get id and name from grid 

         Toast.makeText(getApplicationContext(), "Collaboratore Scelto : " + position, Toast.LENGTH_LONG).show(); 

HashMap<String, String> person=tableColl.get(position); 
     String name=person.get(TAG_NAME); 
     String id=person.get(TAG_ID); 
Toast.makeText(getApplicationContext(), "Name : " + name+" ,Id :"+id, Toast.LENGTH_LONG).show(); 
       } 
      }); 
0

Пожалуйста, проверьте этот код

gvColl.setOnItemClickListener(new AdapterView.OnItemClickListener() 
     { 
      public void onItemClick(AdapterView<?> parent, View v, int position, long id) 
      { 

       String dataFromGrid; 
       dataFromGrid = ((TextView)(p_view.findViewById(R.id.ulr_textview))).getText().toString(); 

       Intent intent = new Intent(this,Activity2.class); 
       intent.putExtra("PassData",dataFromGrid); 
       startActivity(intent); 
      } 
     }); 

Использования ниже коды в новой деятельности

String m_data; 

    if(getIntent().getExtras() != null) 
    { 
     m_data = getIntent().getExtras().getString("PassData"); 
    } 
+0

Спасибо, код, вышедший из быстрого ученика, работает правильно. Я только что использовал ваш код, но у меня есть проблема с (p_view и т. Д.) Что я не понял? – Jayelef

+0

заменить p_view на v. Пожалуйста, примите и голосуйте, если над вами работает код –

+0

yep, я уже заменил p_view с v, (как параметр onitemclick, но я не понимаю, что касается ulr_textview ... это мой gvcoll? – Jayelef

Смежные вопросы