मैं सरणी एडाप्टर के साथ टुकड़े और सूची दृश्य का उपयोग करने की कोशिश कर रहा हूं, और सरणी एडाप्टर में ऑनक्लिक लिस्टनर से मेरी विधि को कॉल करने में परेशानी हो रही है।क्या मेरा व्यवसाय तर्क खंड या गतिविधि में होना चाहिए?
यदि मैं पैटर्न को सही ढंग से समझता हूं, तो एक टुकड़ा आत्मनिर्भर होना चाहिए, इसलिए मैं वहां अपना व्यावसायिक तर्क रखना चाहता हूं। लेकिन मैं इसे सरणी एडाप्टर से कॉल करने का प्रबंधन नहीं कर सकता। अगर मैं इसे मुख्य गतिविधि में डालता हूं तो मैं इसे कॉल कर सकता हूं, लेकिन क्या यह मुझे किसी अन्य गतिविधि में खंड का उपयोग करने से रोकता है और प्रतिमान को तोड़ता है?
क्या मेरा व्यवसाय तर्क गलत जगह पर है, या क्या मैं इसे सही तरीके से नहीं बुला रहा हूं?
यहां मेरा ऐरे एडाप्टर है;
public class RecipientsListAdapter extends ArrayAdapter<Recipient>{
Context context;
int layoutResourceId;
Recipient data[] = null;
public RecipientsListAdapter(Context context, int layoutResourceId, Recipient[] data) {
super(context, layoutResourceId, data);
this.layoutResourceId = layoutResourceId;
this.context = context;
this.data = data;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View row = convertView;
RecipientHolder holder = null;
final boolean isLastRow = (position == data.length-1);
if(row == null)
{
LayoutInflater inflater = ((Activity)context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent, false);
holder = new RecipientHolder();
holder.imgIcon = (ImageView)row.findViewById(R.id.imgIcon);
holder.txtTitle = (TextView)row.findViewById(R.id.txtTitle);
row.setTag(holder);
}
else
{
holder = (RecipientHolder)row.getTag();
}
final Recipient recipient = data[position];
holder.txtTitle.setText(recipient.displayName);
holder.imgIcon.setImageResource(recipient.icon);
row.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
((MainActivity)context).onChildItemSelected(position);
if(isLastRow){
//((RecipientsFragment).getContext()).launchContactPicker();
((MainActivity)context)).launchContactPicker();
}
else{
Toast.makeText(getContext(), recipient.displayName, Toast.LENGTH_SHORT).show();
}
}
});
return row;
}