0

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

ありがとうございます!

+0

こんにちは@MikeMを を ニュース= newss.get(位置)を試してみて、あなたはそれが動作する可能性がありonListItemClickでこれを使用してください。追加、ありがとうございました – FilipeOS

+0

他のアダプタ(ほぼ同等)でも、ImageViewに 'setOnClickListener'を設定するとアダプタ内で同じことが起こっていることに気付きました。あなたは例を挙げていただけますか?私はちょっとした騒ぎです。 – FilipeOS

+0

@MikeM。私の最後のコードを確認できますか?私はそれがうまく動作するはずですので、ポジションを取得していないよ?アダプタの内側にあるので。このclickListener以外のすべての情報が正しく表示されます – FilipeOS

答えて

0

..

`@Override 
public void onListItemClick(ListView l, View v, int position, long id) { 
    news = newss.get(position) 
    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); 
}` 
+0

ありがとう!あなたが私が置いた最後のコードで私を助けることができますか? MikeMに何か問題があるとコメントしました。 I – FilipeOS

+0

遅れて申し訳ありませんが、他のアダプターで同じnews = newss.get(position)を使用することができます。 getviewメソッドから位置を取得し、その位置から値を使用できます。 – Ashish

+0

例を挙げてください。 – FilipeOS

関連する問題