Cómo cambiar el fondo del texto del elemento ListView

leoking

Estoy implementando un ListViewcon ArrayAdapter. Cada vez que se hace clic en cualquier elemento de ListView, me gustaría que el color del texto del elemento se cambie y también se guarde en formato SharedPreference. Soy un principiante, no sé cómo implementarlo.

Ayúdame a lograr este objetivo. Probé muchas fuentes pero el problema no se pudo resolver.

Aquí está mi código.

public class ALLVERSE extends AppCompatActivity  implements NavigationView.OnNavigationItemSelectedListener {
    private ListView mylistview;
    private ArrayList<String>versenumber;
    private ArrayList<String>verselist;
    private ArrayList<String>id;
    private  ArrayList<String>refernce;
    private DatabaseHelper mDBHelper;
    private SQLiteDatabase mDb;
    private int booknumber;
    private  int chapternumber;
    private  String bookname;
    private TextView booknametitle;
    private  FullverseAdopter fullverseAdopter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_allverse);

        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        booknametitle=findViewById(R.id.bookname);

        Intent mIntent = getIntent();
        booknumber = mIntent.getIntExtra("Boooknumber",0);
        chapternumber= mIntent.getIntExtra("Chapternumber", 0);
        bookname=mIntent.getStringExtra("Bookname");

        booknametitle.setText(bookname.toString() +"   "+  chapternumber);


        //Toast.makeText(this, ""+bookname, Toast.LENGTH_SHORT).show();
        setSupportActionBar(toolbar);
        toolbar.setTitle("ALL VERSE");


        setSupportActionBar(toolbar);
        if (getSupportActionBar() != null) {
            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
            getSupportActionBar().setDisplayShowHomeEnabled(true);
        }

        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
                this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
        drawer.addDrawerListener(toggle);
        toggle.syncState();

        NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
        navigationView.setNavigationItemSelectedListener(this);
        setData();

        mylistview=findViewById(R.id.mylistview);

        fullverseAdopter=new FullverseAdopter(ALLVERSE.this,R.layout.versedisplayrow,versenumber,verselist,refernce,id);

        mylistview.setAdapter(fullverseAdopter);

        mylistview.setOnItemClickListener(new AdapterView.OnItemClickListener(){

            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                Toast.makeText(ALLVERSE.this, "i am cliked", Toast.LENGTH_SHORT).show();
            }
        });
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // handle arrow click here
        if (item.getItemId() == android.R.id.home) {
            onBackPressed();
        }
        return super.onOptionsItemSelected(item);
    }

    private void setData() {
        versenumber=new ArrayList<>();
        verselist=new ArrayList<>();
        refernce=new ArrayList<>();
        id=new ArrayList<>();

        mDBHelper = new DatabaseHelper(this);
        mDb = mDBHelper.getReadableDatabase();
        Cursor cursor = mDb.rawQuery("SELECT id, v, t from t_kjv where b="+booknumber+" AND c="+chapternumber+";", new String[]{});
        if(cursor!=null && cursor.getCount() > 0)
        { if (cursor.moveToFirst())
        {
            do {
                id.add(cursor.getString(0));
                versenumber.add(cursor.getString(1));
                verselist.add(cursor.getString(2));
                refernce.add(bookname+" "+chapternumber);
            }
            while (cursor.moveToNext());
        }
        }
    }

    @Override
    public boolean onNavigationItemSelected(MenuItem item) {
        // Handle navigation view item clicks here.
        Fragment fragment;
        int id = item.getItemId();
        if (id == R.id.home) {
            Intent intent=new Intent(this,MainActivity.class);
            startActivity(intent);

        } else if (id == R.id.favoruite)
        { Intent intent=new Intent(this,Favourite.class);
            startActivity(intent);
        }  else if (id == R.id.nav_manage) {

        } else if (id == R.id.nav_share) {

        } else if (id == R.id.nav_send) {

        }
        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        drawer.closeDrawer(GravityCompat.START);
        return true;
    }
}

Mi clase de adaptador

public class FullverseAdopter extends ArrayAdapter<String> {
    private ALLVERSE activity;
    private List<String> versenumber;
    private List<String>verseid;
    private List<String> verselist;
    private List<String> refernce;
    TextToSpeech textToSpeech;
    private DatabaseHelper mDBHelper;
    private SQLiteDatabase mDb;
    private  boolean ischeckd;
    String My_PREF="MY_PREF";

    public  String ex="switch";

    //check for availabe language
    int result;

    public FullverseAdopter(ALLVERSE context, int resource, List<String> versenumber, List<String> verselist, List<String> refernce, List<String>verseid) {
        super(context, resource, versenumber);
        this.activity = context;
        this.versenumber = versenumber;
        this.verselist = verselist;
        this.refernce = refernce;
        this.verseid=verseid;
    }

    @Override
    public int getCount() {
        return versenumber.size();
    }

    @Override
    public String getItem(int position) {
        return versenumber.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(final int position, View convertView, final ViewGroup parent) {
        final ViewHolder holder;

        LayoutInflater inflater = (LayoutInflater) activity.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
        // If holder not exist then locate all view from UI file.
        if (convertView == null) {
            // inflate UI from XML file
            convertView = inflater.inflate(R.layout.versedisplayrow, parent, false);
            // get all UI view
            holder = new ViewHolder(convertView);
            // set tag for holder
            holder.versenumber = (TextView) convertView.findViewById(R.id.versenumber);
            holder.verselist = (TextView) convertView.findViewById(R.id.verse);
            holder.addfavoruite=(ToggleButton)convertView.findViewById(R.id.adbookmark);

            convertView.setTag(holder);
        } else {
            // if holder created, get tag from view
            holder = (ViewHolder) convertView.getTag();
        }
        holder.versenumber.setText(versenumber.get(position));
        holder.verselist.setText(verselist.get(position));


        //verselist highlight
    /*holder.verselist.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        }
    });*/

        //share verse
        holder.share.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toasty.info(activity, "Sharing a verse.", Toast.LENGTH_SHORT, true).show();
                Intent sendIntent = new Intent();
                sendIntent.setAction(Intent.ACTION_SEND);
                sendIntent.putExtra(Intent.EXTRA_TEXT, refernce.get(position) + ":" + versenumber.get(position) + '\n'   + verselist.get(position));
                sendIntent.setType("text/plain");
                activity.startActivity(sendIntent);
            }
        });

        //add in favourite
        holder.addfavoruite.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

                if(isChecked){
                    mDBHelper = new DatabaseHelper(activity);
                    mDb = mDBHelper.getWritableDatabase();
                    ContentValues contentValues=new ContentValues();
                    contentValues.put("id",verseid.get(position));
                    contentValues.put("bookname",refernce.get(position));
                    contentValues.put("versenumber",versenumber.get(position));
                    contentValues.put("verse",verselist.get(position));
                    long check=mDb.insert("favourite",null,contentValues);
                    Log.d("MY_TAG","DB IS NOW "+check);

                    Toasty.success(activity, "Added in favouite", Toast.LENGTH_SHORT, true).show();
                }else {
                    mDBHelper = new DatabaseHelper(activity);
                    mDb = mDBHelper.getWritableDatabase();
                    long delete= mDb.delete("favourite","id=?",new String[]{verseid.get(position)});
                    Toasty.error(activity, "Remove in favouite", Toast.LENGTH_SHORT, true).show();
                }
            }
        });

           /* textToSpeech = new TextToSpeech(activity, new TextToSpeech.OnInitListener() {
                @Override
                public void onInit(int status) {

                    if (status == TextToSpeech.SUCCESS) {
                        result = textToSpeech.setLanguage(Locale.ENGLISH);
                    } else {

                        Toast.makeText(activity, "YOUR DEVICE NOT SUPPORTED", Toast.LENGTH_SHORT).show();
                    }
                }
            });
    */

        //My toggle button
           /* holder.speakverse.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    Toast.makeText(activity, "I AM CLICKED", Toast.LENGTH_SHORT).show();

                    if (result == TextToSpeech.LANG_NOT_SUPPORTED || result == TextToSpeech.LANG_MISSING_DATA) {

                        Toast.makeText(activity, "Language not supported or Missing", Toast.LENGTH_SHORT).show();

                    } else {

                        textToSpeech.speak(verselist.get(position), TextToSpeech.QUEUE_FLUSH, null);
                    }
                }
            });*/
        return convertView;
    }

    static class ViewHolder {
        private TextView versenumber;
        private TextView verselist;
        private ImageView share;
        private  ToggleButton addfavoruite;
        private ImageView speakverse;

        public ViewHolder(View v) {
            versenumber = (TextView) v.findViewById(R.id.versenumber);
            verselist = (TextView) v.findViewById(R.id.verse);
            share = (ImageView) v.findViewById(R.id.share);
            /*speakverse = (ImageView) v.findViewById(R.id.speakverse);*/
            addfavoruite=(ToggleButton)v.findViewById(R.id.adbookmark);
        }
    }

    public boolean CheckIsDataAlreadyInDBorNot(String TableName,  String dbfield, String fieldValue) {

        mDBHelper = new DatabaseHelper(activity);
        mDb = mDBHelper.getReadableDatabase();
        String Query = "Select * from " + TableName + " where " + dbfield + " = " + fieldValue;
        Cursor cursor = mDb.rawQuery(Query, null);
        if(cursor.getCount() <= 0){
            cursor.close();

            Toast.makeText(activity, "false", Toast.LENGTH_SHORT).show();
            return false;
        }else {

            Toast.makeText(activity, "TRUE", Toast.LENGTH_SHORT).show();
        }
        cursor.close();
        return true;
    }

    public  void opecolorpicker(){
        ColorPicker colorPicker = new ColorPicker(activity);
        ArrayList<String>colors=new ArrayList<>();
        colors.add("#FF0000");
        colors.add("#FFEC33");
        colors.add("#3C33FF");
        colors.add("#DA33FF");
        colors.add("#33FF99");
        colors.add("#90FF33");
        colors.add("#DD33FF");
        colors.add("#F0B27A");
        colors.add("#DAF7A6");
        colors.add("#34495E");

        colorPicker.setColors(colors).setTitle("HIGHLIGHT VERSE").setRoundColorButton(true).setOnChooseColorListener(new ColorPicker.OnChooseColorListener() {
            @Override
            public void onChooseColor(int position, int color) {

                Toast.makeText(activity, ""+color, Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onCancel() {
            }
        }).show();
    }
}
usuario6318595

Según tu pregunta,


Con esto, puede obtener un elemento en particular en la vista de lista y manejar su evento de clic, cambie el color si lo desea

 mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {Log.e("TAG", "onItemClick: " + position); }});

// Una buena forma de utilizar la preferencia compartida es así

public class AppSharedPreference {

public static final String ABC_APP_SHARED_PREFERENCES =
        "com.example.bachatgatapp.sharedpreferences";


///////Agent Details need to store in shared preferences///////
private static final String MOBILE_FILE = "mobfile";

// SET - OBTENER "NÚMERO MÓVIL" EN PREFERENCIA COMPARTIDA

public static void setMobileFile(Context context, String value) {

    SharedPreferences preferences = context.getSharedPreferences(ABC_APP_SHARED_PREFERENCES, Context.MODE_PRIVATE);

    preferences.edit().putString(MOBILE_FILE, value).commit();
}


public static String getMobileFile(Context context) {

    SharedPreferences preferences = context.getSharedPreferences(ABC_APP_SHARED_PREFERENCES, Context.MODE_PRIVATE);

    return preferences.getString(MOBILE_FILE, "");
}

// Escriba este código para guardar valor en preferencia compartida

AppSharedPreference.setMobileFile(this, mobile_number);

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

¿Cómo cambiar el CSS del elemento de fondo?

Cómo cambiar el texto del elemento del menú AppCompatButton

Cambiar el fondo del elemento recicladorView onClick?

¿Cómo cambiar el ancho del elemento dentro de ListView?

Cambiar el texto del elemento del bucle

¿Cómo cambiar el fondo del elemento secundario cuando el elemento principal está suspendido?

¿Cómo se puede cambiar el tamaño del texto del elemento del menú?

Cambiar el color del texto del elemento seleccionado del cuadro de lista de WPF y el color de resaltado / fondo con C #

¿Cómo personalizar el UIDatePicker y cambiar el color del texto y el color de fondo?

Quiero cambiar el fondo del texto del botón.

Cómo enmascarar el texto al cambiar el tamaño del fondo

Cómo enmascarar el texto al cambiar el tamaño del fondo

Cambiar el color de fondo del elemento ListView en una condición específica

formularios xamarin: no se pudo cambiar el color de fondo del elemento seleccionado en ListView

Cambiar el color de fondo del elemento seleccionado de ListView en Xamarin

Cambiar el color de fondo del elemento seleccionado de Listview de UWP en Xamarin

¿Cómo cambiar el color de fondo del elemento seleccionado de la lista?

Cómo cambiar el color de fondo del elemento seleccionado en JList dinámicamente

¿Cómo puedo cambiar el color de fondo del elemento enfocado durante unos segundos?

cómo cambiar el color de fondo del elemento seleccionado en la vista de lista

¿Cómo cambiar el fondo / primer plano del elemento en Treeview por etiqueta?

Cómo cambiar el texto del elemento del menú de forma dinámica en Android

Cómo cambiar el texto del elemento con un clic del mouse

Cambiar el color de fondo del elemento de la vista del reciclador por código

Cambiar el color de fondo del elemento de la vista del reciclador por código

¿Cómo cambiar el color (fondo, texto) del encabezado de TableView en Qt5?

Ionic: ¿cómo cambiar el color de fondo del campo de texto?

¿Cómo cambiar el color del texto de una imagen de fondo transparente en react native?

¿Cómo cambiar el color de fondo del campo de texto en UISearchController?