Android: хочу получить доступ к текстовому представлению в просмотрщике в моей основной деятельности

Мне очень жаль мой плохой английский, но вот моя проблема:

Я использую собственный ListView, такой как ArrayAdapter, и создаю свой ArrayAdapter в качестве стажерского класса в моей основной деятельности следующим образом:

    /*This is my Main Activity*/
    public class  KhassaideActivity extends Activity {

    ViewHolder holder;
    KhassaideAdapterbi listadapter ;
    ListView l ; 

    @Override
    protected void onCreate(Bundle savedInstanceState) {

      l= (ListView) findViewById(R.id.listDieuzbou);
      listadapter = new KhassaideAdapterbi(this, R.layout.affichage_khassaide, rowItems);
      l.setAdapter(listadapter);
    }

    /*This is my intern class ArrayAdapter*/
    private class KhassaideAdapterbi  extends ArrayAdapter<RowItem>{

    Context context;
    public KhassaideAdapterbi(Context context, int resourceId,
            List<RowItem> items) {

        super(context, resourceId, items);
        this.context = context;
    }

    public class ViewHolder {
    ImageView imageView;
    TextView trad;
    TextView trans;
    TextView number;
}

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {


        RowItem rowItem = getItem(position);

        LayoutInflater mInflater = (LayoutInflater) context
                .getSystemService(Activity.LAYOUT_INFLATER_SERVICE);

        if (convertView == null) {

 holder = new ViewHolder();
            convertView = mInflater.inflate(R.layout.affichage_khassaide, null);

            holder.number = (TextView) convertView.findViewById(R.id.number);
            holder.trad = (TextView) convertView.findViewById(R.id.traduction);
            holder.trans = (TextView) convertView.findViewById(R.id.transcription);
            holder.imageView = (ImageView) convertView.findViewById(R.id.arabe);
            convertView.setTag(holder);
        }
        else
            holder = (ViewHolder) convertView.getTag();

        holder.trad.setText(rowItem.getTitle());
        holder.trans.setText(rowItem.getDesc());
        holder.imageView.setImageResource(rowItem.getImageId());
        holder.number.setText(rowItem.getNumber());
        return convertView;
    }



}

Итак, в моей основной деятельности я хочу получить доступ и поделиться значениями двух TextView, когда пользователь нажимает на такой элемент меню:

    case R.id.action_share:

        Intent sendIntent = new Intent();
        sendIntent.setAction(Intent.ACTION_SEND);
        sendIntent.putExtra(Intent.EXTRA_TEXT, listadapter.holder.trad.getText());
        sendIntent.setType("text/plain");
        startActivity(Intent.createChooser(sendIntent, getResources().getText(R.string.send_to)));

Но я получаю NullPointerException в этой строке listadapter.holder.trad.getText()

У кого-нибудь есть решение для этого? Заранее спасибо. И извините еще раз за этот плохой английский


person KhouleIbrahima    schedule 22.08.2013    source источник
comment
в вашем методе onCreate, где у вас есть вызов метода setContentView?   -  person Piyush    schedule 22.08.2013
comment
Я пропустил в приведенном выше коде, но я сначала вызываю его в своем методе onCreate   -  person KhouleIbrahima    schedule 22.08.2013
comment
вот так ` @Override protected void onCreate (Bundle saveInstanceState) { super.onCreate (savedInstanceState); setContentView(R.layout.activity_khassaide);`   -  person KhouleIbrahima    schedule 22.08.2013


Ответы (1)


вы должны изменить это ....

private class KhassaideAdapterbi  extends ArrayAdapter<RowItem>{

Context context;
List<RowItem> Rowitems;
public KhassaideAdapterbi(Context context, int resourceId,
        List<RowItem> items) {

    super(context, resourceId, items);
    this.context = context;
    this.Rowitems = items;
}

теперь получите данные от Rowitems...

person Piyush    schedule 22.08.2013
comment
но значение Rowitems окончательно не используется или это атрибут моей основной деятельности? - person KhouleIbrahima; 22.08.2013
comment
Большое спасибо, это работает отлично, я использую rowItems как атрибут в своей основной деятельности. - person KhouleIbrahima; 22.08.2013