gpt4 book ai didi

java - 实现从main到fragment的菜单项

转载 作者:太空宇宙 更新时间:2023-11-04 10:20:40 25 4
gpt4 key购买 nike

祝大家有美好的一天。在选项菜单项上单击“我运行一种方法”它工作正常,但如果再次单击列表更新,但列表的第一项不会延迟它显示两次。需要单击 ListView 刷新并且列表仅显示新项目。

这是选项卡布局,所以我只写一些代码听

主要 Activity

TAZA taza;

public class SectionsPagerAdapter extends FragmentPagerAdapter {

public SectionsPagerAdapter ( FragmentManager fm ) {
super(fm);
}

@Override
public Fragment getItem ( int position ) {


switch (position) {
case 0:
taza = new TAZA();

return taza;


return null;
}


@Override
public boolean onCreateOptionsMenu ( Menu menu ) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}

@Override
public boolean onOptionsItemSelected ( MenuItem item ) {

int id = item.getItemId();

if (id == R.id.refresh) {

taza.aa();


return true;
}

这是 fragment 选项卡;TAZA.java

 public class TAZA extends Fragment {


public TAZA () {
// Required empty public constructor
}


ArrayList <NewsItem> newsItemsList;
ListView lvRss;
NewsAdaptor adapter;
Button button;
ProgressDialog pDialog;
@Override
public View onCreateView ( LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState ) {

View view = inflater.inflate(R.layout.taza, container, false);
lvRss = (ListView) view.findViewById(R.id.listtaza);
newsItemsList = new ArrayList <>();
RequestQueue queue = MySingleton.getInstance(getActivity().getApplicationContext()).
getRequestQueue();


return view;
}



public void aa(){
StringRequest stringRequest1 = new StringRequest
("https://politepol.com/feed/18863", new Response.Listener <String>() {

@Override
public void onResponse ( String response ) {
Log.d("asd","aa");
Document documentgeo = Jsoup.parse(response);
Elements itemElementsge = documentgeo.getElementsByTag("item");
for (int i = 0; i < itemElementsge.size(); i++) {
Element itemge = itemElementsge.get(i);

String s = itemge.child(0).text();
Document document1 = Jsoup.parse(s);
String img = document1.getElementsByTag("img").first().attr("src");
String title = document1.getElementsByTag("img").first().attr("title");
String link = document1.getElementsByTag("a").first().attr("href");
String dateeee = rem1(itemge.child(3).text());
Log.d("zxc",""+link);
String datevee = dateeee;
SimpleDateFormat spf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss");
Date newDate = null;
try {
newDate = spf.parse(datevee);
} catch (ParseException e) {
e.printStackTrace();
}
spf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
datevee = spf.format(newDate);

NewsItem newsItem = new NewsItem();
newsItem.setImagePath(img);
newsItem.setDate(datevee);
newsItem.setTitle(title);
newsItem.setLink(link);
newsItem.setDatedisplay("DATE" + " " + rem(datevee));
newsItemsList.add(newsItem);

}
adapter = new NewsAdaptor(getContext(), newsItemsList);
lvRss.setAdapter(adapter);
lvRss.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick ( AdapterView <?> parent, View view, int position, long id ) {

NewsItem currentNews = newsItemsList.get(position);
Intent intent = new Intent(getContext(), Detail.class);
intent.putExtra("NEWS", currentNews);
startActivity(intent);
}
});
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse ( VolleyError error ) {
aa();
Log.d("asd","a");
}
});
MySingleton.getInstance(getContext()).addToRequestQueue(stringRequest1);
}

新闻适配器

public class NewsAdaptor extends BaseAdapter {
TextView tvtitle;
RelativeLayout view2;
Context context;

private int color;
private int colorback;
private int textSize;

public NewsAdaptor ( Context context, ArrayList <NewsItem> newsList ) {
this.context = context;
this.newsList = newsList;
this.color = Color.RED;

}

ArrayList <NewsItem> newsList;


@Override
public int getCount () {

return newsList.size();
}

@Override
public Object getItem ( int position ) {

return newsList.get(position);
}

@Override
public long getItemId ( int position ) {
return 0;
}

@SuppressLint("ResourceAsColor")
@Override
public View getView ( int position, View convertView, ViewGroup parent ) {
if (convertView == null) {
convertView = View.inflate(context, R.layout.newsitemlist_layout, null);

}
NewsItem currentNews = newsList.get(position);
ImageView iv1 = (ImageView) convertView.findViewById(R.id.mainimg);
tvtitle = (TextView) convertView.findViewById(R.id.textView1id);

TextView tvdate = (TextView) convertView.findViewById(R.id.pubDateid);

tvtitle.setText(currentNews.getTitle());
tvdate.setText(currentNews.getDatedisplay());
return convertView;
}

最佳答案

只需在方法开始处添加 newsItemList.clear() 即可。它不会产生重复的数据。

关于java - 实现从main到fragment的菜单项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51206545/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com