Как отключить кнопку, когда edittext пуст в списке во фрагменте? - PullRequest
0 голосов
/ 14 июля 2020

Мне нужно, чтобы кнопка была деактивирована и должна быть активирована, когда она записывается в текст редактирования, кроме того, когда я нажимаю на кнопку, она отправляет мне сообщение и стирается, введенное в текст редактирования удаляется, это должно выполняться для каждого элемента списка, который я пробовал, приложение запускается, но не выполняет ничего из того, что я хочу, я сделал это фрагментом, пожалуйста, помогите мне.

HomeFragment

public class HomeFragment extends Fragment implements View.OnClickListener{

    Button entry;
    EditText reply;

    int[] imagen = new int[]{
            R.drawable.gotas,R.drawable.hojas,R.drawable.leon
    };

    String[] nombreimagen = new String[]{
            "drop","leaves","animal"
    };

    String[] pregunta = new String[] {
            "how many drops have fallen?","how many sheets are there?","what animal is?"
    };
    String[] numreto = new String[]{
            "challenge 1","challenge 2","challenge 3"

    };
    String[] descripcion = new String[]{
            "write a number","write a number","write a number"
    };

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable final ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_home, container, false);

        List<HashMap<String, String>> aList = new ArrayList<>();

        for (int i = 0; i<3 ; i++) {
            HashMap<String, String > hm = new HashMap<>();
            hm.put("ima", Integer.toString(imagen[i]));
            hm.put("nombreima", nombreimagen[i]);
            hm.put("pregunta", pregunta[i]);
            hm.put("numreto", numreto[i]);
            hm.put("descri", descripcion[i]);
            aList.add(hm);
        }

        String[] from = {"ima", "nameima", "pregunta", "numreto", "descri"};

        int[] to = {R.id.imagret, R.id.nameima, R.id.pregun, R.id.numreto, R.id.descrp};

        SimpleAdapter adapter = new SimpleAdapter(view.getContext(), aList, R.layout.item2, from, to);
        ListView listView = (ListView) view.findViewById(R.id.lv);
        listView.setAdapter(adapter);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                int viewId = view.getId();
                switch (viewId){
                    case R.id.ingre:
                        //Boton Detalles

                        ((ListView) container).performItemClick(view,i,0);
                        entry.setOnClickListener((View.OnClickListener) reply);
                        entry.setEnabled(false);
                        Toast.makeText(getContext(),"its reply" + reply + "is entry",Toast.LENGTH_LONG).show();

                    case R.id.respuesta:

                        reply.addTextChangedListener(new TextWatcher() {
                            @Override
                            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
                                if(charSequence.toString().equals("")){
                                    entry.setEnabled(false);
                                }
                                else{
                                    entry.setEnabled(true);
                                }
                            }

                            @Override
                            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

                            }

                            @Override
                            public void afterTextChanged(Editable editable) {
                                if (editable.toString().equals("")){
                                    entry.setEnabled(false);
                                }
                                else {
                                    entry.setEnabled(true);
                                }

                            }
                        });


                        break;
            }
        }
        });
        return view;
    }


    @Override
    public void onClick(View view) {
        switch (view.getId()){
            case R.id.ingre:{
                reply.setText("");
                break;
            }
        }
    }
}

layout

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ListView
        android:id="@+id/lv"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</androidx.constraintlayout.widget.ConstraintLayout>


item2

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <ImageView
            android:id="@+id/imagret"
            android:layout_width="190dp"
            android:layout_height="150dp" />

        <TextView
            android:id="@+id/nameima"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:layout_weight="1"
            android:gravity="center"
            android:text="TextView"
            android:textColor="#000000"
            android:textSize="30sp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <TextView
            android:id="@+id/pregun"
            android:layout_width="215dp"
            android:layout_height="190dp"
            android:textColor="#0091EA"
            android:textSize="18sp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <TextView
            android:id="@+id/numreto"
            android:layout_width="match_parent"
            android:layout_height="60dp"
            android:gravity="center"
            android:textColor="#FF0000"
            android:textSize="38sp" />

        <TextView
            android:id="@+id/descrp"
            android:layout_width="match_parent"
            android:layout_height="25dp"
            android:gravity="end"
            android:textColor="#FF0000"
            android:textSize="14sp" />

        <EditText
            android:id="@+id/respuesta"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:enabled="true"
            android:gravity="center"
            android:hint="reply"
            android:inputType="number"
            android:textColorLink="#0037CE"
            android:textSize="24sp" />

        <Button
            android:id="@+id/ingre"
            android:layout_width="match_parent"
            android:layout_height="55dp"
            android:text="entry"
            android:textColor="#FFFFFF"
            android:textSize="24sp" />
    </LinearLayout>
</LinearLayout>

это мое приложение, кнопка должна запускаться (отключена), а при вводе текста редактирования она должна (быть включена), после нажатия кнопки кнопку, вы должны удалить то, что у вас есть в тексте редактирования, это должно выполняться в каждом элементе, после этого он сохранит ответы в базе данных для сравнения и окончательного результата (но это позже, только если вы можете помочь мне с это тоже, я был бы признателен) на данный момент мне нужны только кнопки и текст редактирования, пожалуйста

[введите описание изображения здесь] [1] [1]: https://i.stack.imgur.com/8Aab7.png

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...