在AlertDialog

时间:2016-04-23 22:24:15

标签: java android android-studio android-recyclerview android-alertdialog

我正在尝试从editText字段获取输入以更新到我的recyclerView。为了实现这一目标,我需要添加或删除我的代码?我正在使用一个已经包含一些数据的arraylist。现在我想要和列表中的新标题。当用户点击FAB时,我设置了一个警告对话框,显示他们可以输入名称的位置。一旦用户按下是,我希望该名称转到recyclerView。

public class Workout extends Fragment {
  RecyclerView recyclerView;
  RecyclerView.Adapter adapter;
  RecyclerView.LayoutManager layoutManager;
  ArrayList < RoutineList > list = new ArrayList < RoutineList > ();
  String[] name;


  @
  Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    final View rootView = inflater.inflate(R.layout.workout_list_activity, container, false);

    FloatingActionButton fab = (FloatingActionButton) rootView.findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {@
      Override
      public void onClick(View view) {
        final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        // Get the layout inflater
        LayoutInflater inflater = getActivity().getLayoutInflater();

        // Inflate and set the layout for the dialog
        // Pass null as the parent view because its going in the dialog layout
        view = inflater.inflate(R.layout.dialog_fab, null);
        final EditText routineName = (EditText) view.findViewById(R.id.workoutTitle);
        builder.setView(view)

        // Add action buttons
        .setPositiveButton("Yes", new DialogInterface.OnClickListener() {

            public void onClick(DialogInterface dialog, int id) {
              if (!TextUtils.isEmpty(routineName.getText().toString())) {
                // This block is responsible for checking if editText is empty and carrying out the action


              }
            }
          })
          .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
              // User cancelled the dialog
            }
          });
        // Create the AlertDialog object and return it
        AlertDialog dialog = builder.create();
        dialog.show();

        final Button positiveButton = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
        routineName.addTextChangedListener(new TextWatcher() {@
          Override
          public void beforeTextChanged(CharSequence s, int start, int count, int after) {

          }

          @
          Override
          public void onTextChanged(CharSequence s, int start, int before, int count) {


          }

          @
          Override
          public void afterTextChanged(Editable s) {

          }
        });



      }
    });


    name = VersionModel.data;
    for (String Name: name) {
      RoutineList routineList = new RoutineList(Name);
      list.add(routineList);
    }

    recyclerView = (RecyclerView) rootView.findViewById(R.id.recyclerView);
    layoutManager = new LinearLayoutManager(getActivity());
    recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));

    recyclerView.setHasFixedSize(true);

    adapter = new RoutineListAdapter(list, getActivity());
    recyclerView.setAdapter(adapter);
    return rootView;
  }

  public static Workout newInstance() {
    Workout workout = new Workout();
    return workout;
  }
}

public class RoutineListAdapter extends RecyclerView.Adapter < RoutineListAdapter.RoutineListViewHolder > {
  ArrayList < RoutineList > routineLists = new ArrayList < RoutineList > ();
  Context context;



  public RoutineListAdapter(ArrayList < RoutineList > routineLists, Context context) {

    this.routineLists = routineLists;
    this.context = context;

  }

  public RoutineListAdapter(ArrayList < RoutineList > list) {}

  @
  Override
  public RoutineListViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(parent.getContext()).inflate(android.R.layout.simple_list_item_1, parent, false);
    RoutineListViewHolder routineListViewHolder = new RoutineListViewHolder(view, context, routineLists);

    return routineListViewHolder;
  }

  @
  Override
  public void onBindViewHolder(RoutineListViewHolder holder, int position) {
    RoutineList routineList = routineLists.get(position);
    holder.routine_name.setText(routineList.getName());


  }


  @
  Override
  public int getItemCount() {
    return routineLists.size();
  }


  public static class RoutineListViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

    TextView routine_name;
    ArrayList < RoutineList > routineLists = new ArrayList < RoutineList > ();
    Context context;

    public RoutineListViewHolder(View view, Context context, ArrayList < RoutineList > routineLists) {
      super(view);
      this.routineLists = routineLists;
      this.context = context;

      view.setOnClickListener(this);
      routine_name = (TextView) view.findViewById(android.R.id.text1);
    }


    @
    Override
    public void onClick(View v) {
      int position = getAdapterPosition();
      RoutineList routineList = this.routineLists.get(position);
      Intent intent = new Intent(this.context, RoutineDetails.class);
      intent.putExtra("name", routineList.getName());
      this.context.startActivity(intent);

    }
  }
}

public class RoutineList {
    public RoutineList(String name){
        this.setName(name);
    }
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

这是arraylist拉取已经制作的数据的地方。

public class VersionModel {
  public static final String[] data = {
    "Full Body", "Power Legs", "Traps Day", "Arm Blast", "Butt Toner",
    "Fat Killer", "Lower Body", "Big Arms", "Tri Day",
    "Bigger Chest", "Cardio", "Back Blast", "Forearms", "Calf Day", "Train for 5K"
  };

}

1 个答案:

答案 0 :(得分:0)

//将新例程名称添加到列表中     list.add(routineName);

// Then notify the your adapter that list has changed
adapter.notifyDataSetChange();