отображение имени столбца в текстовом представлении - PullRequest
0 голосов
/ 10 июля 2019

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

Я попытался установить текст, курсор и многое другое, но не из сработавшего

вот класс, над которым я работаю

package com.example.hozoor;

import android.annotation.SuppressLint;
import android.content.ContentValues;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;

import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.textfield.TextInputEditText;

import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class Classes extends AppCompatActivity {
    Cursor cursor;
    TextView add;
    Database database;
    private SQLiteDatabase sqLiteDatabase;
    private class_adaptor mclassadaptor;
    RecyclerView.LayoutManager layoutManager;
    String nameclass;



    @SuppressLint("WrongConstant")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate ( savedInstanceState );
        setContentView ( R.layout.activity_classes );
        Toolbar toolbar = findViewById ( R.id.toolbar );
        setSupportActionBar ( toolbar );

        Database mdatabase = new Database ( this );
        sqLiteDatabase = mdatabase.getWritableDatabase ();
        RecyclerView recyclerView = findViewById ( R.id.rec_1 );
        recyclerView.setLayoutManager ( new LinearLayoutManager ( this ,LinearLayoutManager.VERTICAL,false ) );
        mclassadaptor = new class_adaptor ( this, getAllItem () );

        recyclerView.setAdapter(mclassadaptor);

        FloatingActionButton fab = findViewById ( R.id.fab );
        fab.setOnClickListener ( new View.OnClickListener () {
            @Override
            public void onClick(View view) {


                AlertDialog.Builder builder = new AlertDialog.Builder ( Classes.this );
                View view1 = getLayoutInflater ().inflate ( R.layout.custom_dialog_add_calss, null );

                final EditText New_kelas = (TextInputEditText) view1.findViewById ( R.id.name_class );
                TextView afzodn = (TextView) view1.findViewById ( R.id.btn_afzodn_new_class );
                final TextView cancel = (TextView) view1.findViewById ( R.id.btn_cancel_new_class );



                afzodn.setOnClickListener ( new View.OnClickListener () {
                    @Override
                    public void onClick(View view) {

                        if (New_kelas.getText().toString().trim().length()==0 ) {


                        } else {
                            Toast.makeText ( Classes.this, "نام کلاس را وارد کنید", Toast.LENGTH_SHORT ).show ();
                            String name=New_kelas.getText().toString();
                            ContentValues cv=new ContentValues();
                            cv.put(Database.COLUMN_NAME,name);

                            sqLiteDatabase.insert(Database.TABLE_NAME,null,cv);

                            mclassadaptor.swapcursor(getAllItem());

                            New_kelas.getText().clear();
                        }


                    }
                } );

                cancel.setOnClickListener ( new View.OnClickListener () {
                    @Override
                    public void onClick(View view) {

                        Intent intent = new Intent ( getApplicationContext (), Classes.class );
                        startActivity ( intent );
                        finish ();
                    }
                } );

                builder.setView ( view1 );
                AlertDialog dialog = builder.create ();
                dialog.show ();


}
        } );
        layoutManager = new LinearLayoutManager(this);
        recyclerView.setLayoutManager ( layoutManager );
        recyclerView.addOnItemTouchListener(new rec_listener(getApplicationContext(), recyclerView, new rec_listener.ClickListener() {
            @Override
            public void onClick(View view, int position) {
                Intent intent =new Intent(getApplicationContext(),Situation.class);
                startActivity(intent);
            }


            @SuppressLint("ResourceType")
            @Override
            public void onLongClick(View view, int position) {
                String id=cursor.getString ( cursor.getColumnIndex ( "_ID" ) );
                String name= (String) getText ( R.id.name_class );
                TextView name_kelas = findViewById ( R.id.txt_name_kelas );

                AlertDialog.Builder builder = new AlertDialog.Builder ( Classes.this );
                View view1 = getLayoutInflater ().inflate ( R.layout.custom_dialog_edit_delete_bikhial, null );
                EditText New_kelas = (TextInputEditText) view1.findViewById ( R.id.name_class );

               String Name= cursor.getColumnName ( Integer.parseInt ( id ) );
                name_kelas.setText ( Name );

                builder.setView ( view1 );
                AlertDialog dialog = builder.create ();
                dialog.show ();

            }
        }));

    }



    private Cursor getAllItem(){
        return sqLiteDatabase.query(
                Database.TABLE_NAME,
                null,
                null,
                null,
                null,
                null,
                Database.COLUMN_TIMESTAMP+" DESC"

        );
}

}

Мне нужен мой текстпоказать имя столбца

1 Ответ

1 голос
/ 10 июля 2019

Прежде всего создайте два диалоговых окна с предупреждением: сначала для добавления значения (name), а затем для Show value (name).показывает диалоговое окно Добавить предупреждение в мероприятии, в которое нужно добавить событие, Сохранить это событие,

public void SaveEvent(String name) {
    databaseHelper.SaveEvent(name);
    databaseHelper.close();
    Toast.makeText(context, Name Saved!!", Toast.LENGTH_SHORT).show();
}

Вызвать этот метод в действии представления onCreate, а также инициировать класс databasehelper,

DatabaseHelper databaseHelper;

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

final MyAdapter myAdapter = new MyAdapter(MainActivity.this,ShowName(name));
            recyclerView.setAdapter(myAdapter);
            eventRecyclerAdapter.notifyDataSetChanged();

установите метод показанного имени в представлении

public void ShowName(String name) {
String name;
    SQLiteDatabase database = dbOpenHelper.getReadableDatabase();
    Cursor cursor = databaseHelper.ShowDetail(name);
}

НадеюсьЭто поможет Вам!Спасибо!

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