0

一部のメッセージ テキストを textView と単純なボタンに設定するアダプタを作成しましたが、それでもそのアダプタの GUI が表示されません。

エラーはありませんが、その前の画面だけでアダプターが表示されません。

アダプターのコード:

public class messageDisplayAdapter extends ArrayAdapter {

public Context mContext;
private String message;
public AlertDialog alertDialog;
private int id;

public messageDisplayAdapter(Context context, int textViewResourceId, String message) {
    super(context, textViewResourceId);
    mContext = context;
    id = textViewResourceId;
    this.message=message;
}

public View getView(int position, View convertView, ViewGroup parent) {
    View row = convertView;
    if (row == null) {
     LayoutInflater inflater =LayoutInflater.from(this.mContext);
     row = inflater.inflate(R.layout.message, parent, false);
    }
   // final int itemPosition = position;
    TextView Item = (TextView) row.findViewById(R.id.textView );
    Button btn = (Button) row.findViewById(R.id.ButtonOk);
    btn.setOnClickListener( new View.OnClickListener() {
    public void onClick(View v) {
  // Toast.makeText(getApplicationContext(), "Toast from button"+                        //Colors[itemPosition], Toast.LENGTH_SHORT).show();    
  }
 });
    return row;

}

そして、アダプタを表示するクラス:

 protected void onPostExecute(String result) {
    try {
        Dialog.dismiss();
        Intent intent = new Intent(this.context, Class.forName(this.newActivity));


        context.startActivity(intent);
        //finish();}

    } catch (ClassNotFoundException ex) {
      /*  messageDisplayAdapter messageDisplayAdapter = new messageDisplayAdapter(this.context, R.layout.message, "error on loading");
        messageDisplayAdapter.showMessage();
    */

     ListView lv =new ListView(this.context); 
    lv.setTextFilterEnabled(true);
    messageDisplayAdapter  listAdapter= new messageDisplayAdapter(this.context,R.layout.message,"error on loading");
   // listAdpter.setListAdapter(listAdapter); // on test
    lv.setAdapter(listAdapter); // on test

    }

}

手伝ってくれてありがとう!

4

1 に答える 1

0

次のように、getView の textView に setText を追加してみてください。

public class messageDisplayAdapter extends ArrayAdapter {

public Context mContext;
private String message;
public AlertDialog alertDialog;
private int id;

public messageDisplayAdapter(Context context, int textViewResourceId, String message) {
  super(context, textViewResourceId);
  mContext = context;
  id = textViewResourceId;
  this.message=message; 
}

public View getView(int position, View convertView, ViewGroup parent) {
  View row = convertView;
  if (row == null) {
   LayoutInflater inflater =LayoutInflater.from(this.mContext);
   row = inflater.inflate(R.layout.message, parent, false);
  }
 // final int itemPosition = position;
  TextView Item = (TextView) row.findViewById(R.id.textView );
  Item.setText(message); // Try This line
  Button btn = (Button) row.findViewById(R.id.ButtonOk);
  btn.setOnClickListener( new View.OnClickListener() {
  public void onClick(View v) {
// Toast.makeText(getApplicationContext(), "Toast from button"+                             //Colors[itemPosition], Toast.LENGTH_SHORT).show();    
  }
});
return row;

}

また、命名規則に従ってください。

于 2012-09-25T05:59:43.517 に答える