1

A と B の 2 つのアクティビティがあります。

A アクティビティでは、 のすべてのレコードを表示していlistviewます。ユーザーがアクティビティ A にリストされている項目のいずれかをクリックすると、次のアクティビティ B にリダイレクトされ、その特定の 1 つの項目が [次へ] または [前へ] ボタンと共に表示されます。

ユーザーが [次へ] または [前へ] ボタンをクリックすると、それに応じて項目が変更されます。

listview前/次のオンクリックを変更するアクティビティ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

フィールドハッシュマップを取る

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

のインデックス値のインクリメントについても同じことを行います;ue

于 2013-03-12T11:36:07.367 に答える
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 に答える