Пользовательский адаптер массива - PullRequest
0 голосов
/ 13 ноября 2011

Я пишу новостное приложение, и у меня возникают проблемы с отображением пользовательского списка.Все, что я хочу, это чтобы в элементах списка было 2 TextViews:

  • News-Title и
  • News-Description

Они содержатся в 2 статическихмассивы: homeScreen.title [] и homeScreen.descriptionLong [].

Ниже у вас есть мой код для HashMap и Адаптера:

final static ArrayList> data = new ArrayList> ();

static{
    HashMap<String, String> row = new HashMap<String, String>();
    for (int i = 0; i<HomeScreen.arrayLength; i++){
        row.put("Title", HomeScreen.title[i]);
        row.put("Description", HomeScreen.descriptionLong[i]);
        data.add(row);
    }
}

    SimpleAdapter adapter = new SimpleAdapter(this,
            data,
              R.layout.mainmenu,
              new String[] {"Title", "Description"},
              new int[] { R.id.textView1, R.id.textView2});
   setListAdapter(adapter);
}

    public void onItemClick(SimpleAdapter arg0, View arg1, int position,
                long id) {
            selectedNews = position;
            Toast.makeText(getApplicationContext(), "This is: " + selectedNews, Toast.LENGTH_LONG).show();
            Intent intent = new Intent(MainMenu.this, ReadNews.class);
            startActivity(intent);
        }

Проблема, с которой я столкнулся, заключается в том, что она отображает только мою 20-ю (последнюю) информацию о новостях, а также OnItemClick по умолчанию больше не работает.Буду признателен за вашу помощь ...

1 Ответ

2 голосов
/ 13 ноября 2011

Вы должны поместить экземпляр row в цикл for:

for (int i = 0; i<HomeScreen.arrayLength; i++){
    HashMap<String, String> row = new HashMap<String, String>();
    row.put("Title", HomeScreen.title[i]);
    row.put("Description", HomeScreen.descriptionLong[i]);
    data.add(row);
}

Обновление:

Ваша OnItemClickListener регистрация должна выглядеть примерно так:

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, 
                              int position, long id) {
        // your code here
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...