ListFragment
の中のXMLを解析しても問題ありませんが、OnListItemClick
は最後の項目を投げているだけですが、私は検索しましたが、 リストビューの最後の項目だけを取得しています
この
は内部onPostExecute
です:
`@Override
public void onListItemClick(ListView l, View v, int position, long id) {
Toast.makeText(getActivity(), "List: "+news.getId(), Toast.LENGTH_SHORT).show();
Intent in = new Intent(getActivity(), SingleNewsActivity.class);
in.putExtra(KEY_ID, news.getId());
in.putExtra(KEY_DATE, news.getDate());
in.putExtra(KEY_TITLE, news.getTitle());
in.putExtra(KEY_DESC, news.getDescription());
startActivity(in);
}`
マイNewsAdapter
:
public class NewsAdapter extends BaseAdapter { Activity context; List<News> newss; public NewsAdapter (Activity context, List<News> newss) { this.context = context; this.newss = newss; }
// private View Holder class
private class ViewHolder {
TextView tvNewsDate;
TextView TvNewsTitle;
}
public int getCount() {
return newss.size();
}
public Object getItem(int position) {
return newss.get(position);
}
public long getItemId(int position) {
return newss.indexOf(getItem(position));
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
LayoutInflater inflater = context.getLayoutInflater();
if (convertView == null) {
convertView = inflater.inflate(R.layout.news_item, null);
holder = new ViewHolder();
holder.tvNewsDate = (TextView) convertView.findViewById(R.id.tvNewsDate);
holder.TvNewsTitle = (TextView) convertView.findViewById(R.id.tvNewsTitle);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
News newss = (News) getItem(position);
holder.tvNewsDate.setText(newss.getDate());
holder.TvNewsTitle.setText(newss.getTitle());
return convertView;
}
同じフラグメント内にある
XMLDOMParser parser = new XMLDOMParser();
InputStream stream = new ByteArrayInputStream(xml.getBytes());
Document doc = parser.getDocument(stream);
NodeList nodeList = doc.getElementsByTagName(KEY_ITEM);
newss = new ArrayList<News>();
news = null;
for (int i = 0; i < nodeList.getLength(); i++) {
news = new News();
Element e = (Element) nodeList.item(i);
news.setId(parser.getValue(e, KEY_ID));
news.setDate(parser.getValue(e, KEY_DATE));
news.setTitle(parser.getValue(e, KEY_TITLE));
news.setDescription(parser.getValue(e, KEY_DESC));
newss.add(news);
}
listViewAdapter = new NewsAdapter(getActivity(), newss);
getListView().setAdapter(listViewAdapter);
pDialog.dismiss();
OnItemClick
同じ問題で私の他のアダプタ内部setOnClickListner
と
} `
ImageView
:
holder.ivGPS.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Uri gmmIntentUri = Uri.parse("google.navigation:q=" + parkCoordinates); Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); mapIntent.setPackage("com.google.android.apps.maps"); context.startActivity(mapIntent); } });
ありがとうございます!
こんにちは@MikeMを を ニュース= newss.get(位置)を試してみて、あなたはそれが動作する可能性がありonListItemClickでこれを使用してください。追加、ありがとうございました – FilipeOS
他のアダプタ(ほぼ同等)でも、ImageViewに 'setOnClickListener'を設定するとアダプタ内で同じことが起こっていることに気付きました。あなたは例を挙げていただけますか?私はちょっとした騒ぎです。 – FilipeOS
@MikeM。私の最後のコードを確認できますか?私はそれがうまく動作するはずですので、ポジションを取得していないよ?アダプタの内側にあるので。このclickListener以外のすべての情報が正しく表示されます – FilipeOS