如何将EditText中的值添加到自定义ListView?

时间:2014-03-16 01:47:05

标签: java android listview android-listview android-edittext

我一直在努力为自定义ListView添加条目。到目前为止,这是ListView所在片段的代码。

public class f2 extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    return inflater.inflate(R.layout.fragment_1, container, false);
 }
@Override
public void onActivityCreated(Bundle savedInstanceState) {
    Bundle pending = getArguments();
    String Number = pending.getString("Num");
    String Message = pending.getString("Mess");
    ArrayList<String> values = new ArrayList<String>();
    values.add(Number);

    ListView yourListView = (ListView) getActivity().findViewById(R.id.listnew);

    MySimpleArrayAdapter customAdapter = new MySimpleArrayAdapter(getActivity(), android.R.layout.simple_list_item_1, values);
    yourListView.setAdapter(customAdapter);
    customAdapter.notifyDataSetChanged();
    super.onActivityCreated(savedInstanceState);
}
public class MySimpleArrayAdapter extends ArrayAdapter<String> {
      Bundle pending;
      private final Context context;
      private final ArrayList<String> values;

      public MySimpleArrayAdapter(Context context, int simpleListItem1, ArrayList<String> values) {
        super(context, R.layout.rowlayout);
        this.context = context;
        this.values = values;
        this.pending = getArguments();
      }

      @Override
      public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = (LayoutInflater) context
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View rowView = inflater.inflate(R.layout.rowlayout, parent, false);
        TextView textViewNum = (TextView) rowView.findViewById(R.id.label);
        textViewNum.setText(values.get(position));
        return rowView;
      }
    } 

}

Bundle是来自EditText的值的来源。 哦是的,并且已经使用toast消息和其他方法检查了bundle以确保参数正在通过。 如果有人可以提供帮助,我们将不胜感激。

即使捆绑中存在字符串,此处显示的代码问题也不会在活动中显示任何内容。

1 个答案:

答案 0 :(得分:1)

以下是如何做到的:

首先的事情;

Put ArrayList values = new ArrayList();在onActivityCreated()之前。

第二

如果您正在使用意图,请执行以下操作:

Intent intentBundle = getActivity().getIntent();
        String question_cat = intentBundle.getStringExtra("question_cat");
        String Number = intentBundle.getStringExtra("Num");
        String Message = intentBundle.getStringExtra("Mess");
        Log.i("Result : ", Number );
        values.add(Number);

如果使用Bundle:

     Bundle extras = getIntent().getExtras();
     if (extras != null) 
     {
     String Number = extras.getString("Num");
     String Message = extras.getString("Mess");
     values.add(Number);
     }

也许这会有所帮助。