2012-05-10 27 views
0

ListViewから別のActivityに送信されるデータをImageViewに送信するアプリケーションで作業しています。コードは次のようになります。1つのアクティビティから別のアクティビティへListViewデータを取得する方法

package com.gabriel.utility; 
import java.text.DateFormat; 
import java.text.SimpleDateFormat; 
import java.util.ArrayList; 
import java.util.Date; 

import android.content.Context; 
import android.content.Intent; 
import android.graphics.Typeface; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.view.ViewGroup; 
import android.widget.ArrayAdapter; 
import android.widget.ImageButton; 
import android.widget.ImageView; 
import android.widget.TextView; 
import android.widget.ToggleButton; 

import com.gabriel.activity.ContactInfoActivity; 
import com.gabriel.activity.ContactListActivity; 
import com.gabriel.activity.GabrielApplication; 
import com.gabriel.activity.R; 
import com.gabriel.database.ContactCore; 
import com.gabriel.database.WebMessageCore; 

public class WebMessageAdapter extends ArrayAdapter<WebMessageCore>{ 

    Context _Context; 
    ArrayList<WebMessageCore> _WebMsgList; 
    WebMessageCore _WebMsgCore; 
    TextView _MsgContent; 
    private LayoutInflater mInflater; 
    ImageButton Arrow; 
    GabrielApplication application; 
    public WebMessageAdapter(Context context, int resource, 
      ArrayList<WebMessageCore> contactList) { 

     super(context, resource, contactList); 
     _Context = context; 
     _WebMsgList = contactList; 
     mInflater = LayoutInflater.from(context); 
    } 

    public int getCount() { 
     return _WebMsgList.size(); 
    } 

    public WebMessageCore getItem(int position) { 
     return _WebMsgList.get(position); 
    } 

    public long getItemId(int position) { 
     return position; 
    } 


    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     ViewHolder holder; 
     if (convertView == null) { 
      convertView = mInflater.inflate(R.layout.custom_row_view, null); 
      holder = new ViewHolder(); 
      holder.txtName = (TextView) convertView.findViewById(R.id.name); 
      holder.txtmessage = (TextView) convertView 
        .findViewById(R.id.meassage); 
      holder.txtPhone = (TextView) convertView.findViewById(R.id.phone); 
      holder.txtdate= (TextView) convertView.findViewById(R.id.datetime); 
      holder.Arrow = (ImageView)convertView.findViewById(R.id.settingArrow); 
      convertView.setTag(holder); 
     } else { 
      holder = (ViewHolder) convertView.getTag(); 
     } 

     _WebMsgCore=_WebMsgList.get(position); 
     holder.txtName.setText(_WebMsgCore.getName()); 
     holder.txtmessage.setText(_WebMsgCore.getMessage()); 
     holder.txtPhone.setText(_WebMsgCore.getMobileNo()); 
     holder.Arrow.setOnClickListener(new OnClickListener(){ 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
     Intent newActivity = new Intent(_Context, ContactInfoActivity.class); 

     _Context.startActivity(newActivity); 

     }  

     }); 

     String currentDateTimeString = DateFormat.getDateTimeInstance().format(new Date()); 
     holder.txtdate.setText(currentDateTimeString); 
     return convertView; 
     /* SimpleDateFormat sdf = new SimpleDateFormat("MMM dd,yyyy HH:mm:ss.SSS a"); 
     Date resultdate = new Date((new Date()).getTime()); 
     String currentDateTimeString = sdf.format(resultdate); 
     holder.txtdate.setText(currentDateTimeString);*/ 


    } 



     /*tdate = (TextView)findViewById(R.id.datetime); 
     Arrow = (ImageButton)findViewById(R.id.settingArrow); 
     String currentDateTimeString = DateFormat.getDateTimeInstance().format(new Date()); 
     tdate.setText(currentDateTimeString); 
     Arrow.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 

       Intent newActivity = new Intent(context, ContactInfoActivity.class); 
       startActivity(newActivity); 
      } 
     }); 
      */ 


     //View contactView = convertView; 
     /*if (contactView == null) { 
      contactView = LayoutInflater.from(_Context).inflate(
        R.layout.web_message_item, null); 
     } 
     _MsgContent = (TextView) contactView.findViewById(R.id.messageContent); 

     //To set text as bold 
     //===================== 
     _MsgContent.setTypeface(null, Typeface.BOLD); 

     _WebMsgCore = _WebMsgList.get(position); 
     _MsgContent.setText(_WebMsgCore.getMessage()); 
     return contactView; 
    } 
    */ 

    static class ViewHolder { 
     ImageView Arrow; 
     TextView txtName; 
     TextView txtmessage; 
     TextView txtPhone; 
     TextView txtdate; 

    } 
}` 

次に、別のアクティビティにデータを取得したいとします。どうか考えてください。

+0

を使うのか?ここにコードを表示する –

答えて

0

リストはシリアライズ可能なので、それらをインテント経由で別のアクティビティに渡すことができます。 the doc

WebMessageCoreもSerializableを実装していることを確認してください。

0

(笑)これを試してみてください。これがない場合MySingletonClass.getInstance().getData();

活動1:MySingletonClass.getInstance().setData(yourData);

活動2

はこのようにそれを使用します動作していません: /複製(100以上)のためにStackOverFlow.com上で検索してみてください代替ソリューション

0

使用setTag()のgetTag()アダプタgetViewメソッド()関数のコード内のリストビューのプロパティは..格納および取得しますデータ。

チェックもこの答え:ちょうどonclickのリスナーを設定して、あなたの最初の活動でpassing metadata from one activity to the next in an android listview

0

(あなたのリスト上の)

プライベートOnItemClickListener myListener =新しいOnItemClickListener(){ @Overrideます。public void onItemClick( AdapterView親、ビューV、 int型I、長いリットル){

 Log.v(TAG, "onItemClick fired!" + i); 

    ObjectClass mObjectClass = (ObjectClass) >parent.getItemAtPosition(i);   

     //get what where ever you need from mObjectClass then pass it with putExtra >      //if it's a complex object use Parcelable 

    } 

第二の活動であなたののonCreate

yourList.setOnItemClickListener(myListener); 

でこれを忘れないでくださいあなたが合格したものを手に入れると、あなたは、リストビューのために、このアダプタを呼び出しているところから、

関連する問題