1

我有两个活动A和B。

在 A 活动中,我正在显示listview. 当用户单击 Activity A 上列出的任何项目时,它应该重定向到下一个 Activity B,并且它应该显示该特定的单个项目以及 Next/Previous 按钮。

当用户单击“下一个”或“上一个”按钮时,该项目应相应更改。

我应该使用listview还是简单地使用 textview 来显示活动 B 上的特定记录,这些记录会更改上一个/下一个的单击。如何做到这一点?

请帮帮我。这是我的活动 A

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_giga);
     StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy); 
     System.out.println("My Exception 333: ");

      loadNews();
}
private void loadNews(){    
      try{
             BaseFeedParserGiga parser = new BaseFeedParserGiga();
                messages = parser.parsse();
                final String title[]= new String[messages.size()] ;
                final String pubdate[]= new String[messages.size()] ;
                final String link[]= new String[messages.size()] ;
                final String Long[]= new String[messages.size()] ;
                final String image[]= new String[messages.size()] ;
                list = new ArrayList<String>(messages.size());
                mInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
                for (com.example.newsworld.MessageGiga msg : messages){
                    list.add(msg.getTitle());
                    title[j]=msg.getTitle();
                    pubdate[i]=msg.getPubdate();
                    link[m]=msg.getLink();
                    Long[l]=msg.getDesc();
                    Document doc = Jsoup.parse(Long[l]);
                     Elements links = doc.getElementsByTag("img");
                     String src = links.attr("src");
                    image[k]=src;       
                 setListAdapter(new ArrayAdapter<String>(GigaActivity.this, R.layout.rows, list ){
                            @Override
                            public View getView(final int j, View convertView, ViewGroup parent) {
                                            View row;
                                            ViewHolder holder;      
                                            if (convertView == null) {
                                                    convertView = mInflater.inflate(R.layout.row, parent, false);
                                                    System.out.println("My Exception 5: ");
                                                    holder = new ViewHolder();
                                                    holder.txtclick= (TextView) convertView.findViewById(R.id.textView1);
                                                    holder.txtTitle = (TextView) convertView.findViewById(R.id.textView2);
                                                    convertView.setTag(holder);
                                            } else {
                                                    holder = (ViewHolder) convertView.getTag();
                                            }
                                            String s=image[j];

                                            holder.txtTitle.setText(title[j]+"\n\n"+pubdate[j]);
                                            holder.txtclick.setOnClickListener( new OnClickListener()
                                               {
                                                    public void onClick(View viewParam)
                                                    {
                                                    Intent in = new Intent(GigaActivity.this,GigaPage.class);
                                                 in.putExtra("title", title[j]);
                                                 in.putExtra("pubdate", pubdate[j]);
                                                 in.putExtra("link", link[j]);
                                              startActivity(in);
                                            overridePendingTransition(R.anim.grow_from_middle,R.anim.shrink_to_middle);   
                                                    }
                                                   });
                                            return convertView;
                             }  

                            class ViewHolder {
                                    TextView txtLat;
                                    TextView txtTitle; 
                                    TextView txtPubdate; 
                                    ImageView txtLink;
                                    TextView txtclick;
                            }
                    });  

                         j++;
                         i++;
                         m++;
                         l++;
                         k++;
                    }

           }catch(Exception exc){
               System.out.println("My Exception : "+exc.getMessage());
           }
}
4

2 回答 2

0

我想我会按照你的建议布局 B 页面,就像 TextViews 的集合一样,两边都有一些箭头连接他们的 onClick 方法,通过遍历页面 A 的列表视图后面的光标来获取它的索引来检索适当的对象。我可能还会让侧滑手势做同样的事情。

ViewGroup pageB = (ViewGroup) ViewGroup.inflate(this, R.layout.pageB, null);
TextView textView = (TextView) pageB.findViewById(R.id.a_text_view);

listViewAdapter = new SimpleCursorAdapter(this, R.layout.listitem, listCursor, tableFromColumns, toListItemViews, 0);
listView.setAdapter(listViewAdapter);
listView.setOnItemClickListener(new OnItemClickListener() {
    @Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    listCursor.moveToPosition(position);
        textView.setText(listCursor.getString(0)); //set textview on pageB with record data
        setContentView(pageB);
    }
});

void onClickNextRecord() {
    listCursor.moveToNext(); // go to next record
    textView.setText(listCursor.getString(0)); //update textview on pageB with next record data
}
于 2013-03-12T11:07:27.077 回答
0

取一个字段 Hashmap

HashMap<String,com.example.newsworld.MessageGiga> messages=new HashMap<String,com.example.newsworld.MessageGiga>();

在 for 循环中

   for (com.example.newsworld.MessageGiga msg : messages){
messages.put(msg.getTitle(),msg);

}

将其作为额外的意图发送,确保您的消息已序列化

intent.putExtra("messages",messages);

在 GigaPage 中得到它是这样的

if (getIntent().getSerializableExtra("messages") != null)
            messages= (HashMap<String, com.example.newsworld.MessageGiga>) getIntent().getSerializableExtra("messages");

您还发送了用于填充列表视图的列表

首先像这样获取所选项目的索引

 int index = yourlist.indexOf(title)  //here title is selected item title

像这样获取当前标题的数据

com.example.newsworld.MessageGiga  msg=messges.get(ttile);

它将返回包含消息相关标题的所有信息的消息对象

对于以前的onClick,像这样减少索引

index=index-1;
title=yourlist.get(index);
com.example.newsworld.MessageGiga  msg=messges.get(ttile);

对下一次增加索引值执行相同的操作;

于 2013-03-12T11:36:07.367 回答