listview onitemclicklistener не работает, используя в деятельности - PullRequest
0 голосов
/ 28 мая 2019

Привет, друг! У меня есть пользовательский просмотр списка с использованием arrayadopter в моей деятельности. Я использую просмотр списка на элементе щелчка элементов, но проблема в том, что он не работает.не работает, что проблема здесь, пожалуйста, сообщите

мой пользовательский макет для кода списка:

      <?xml version="1.0" encoding="utf-8"?>
        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:fab="http://schemas.android.com/apk/res-auto"
            xmlns:app="http://schemas.android.com/apk/res-auto"
            android:layout_width="match_parent"
            android:orientation="vertical"
            android:layout_margin="0dp"
            android:padding="0dp"
            android:layout_height="wrap_content">


            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal">
                <Button
                    android:layout_width="28dp"
                    android:layout_height="28dp"
                    android:id="@+id/versenumber"
                    android:text="1"
                    android:background="@drawable/roundedbutton"/>
                <TextView
                    android:layout_width="match_parent"
                    android:id="@+id/verse"
                    android:layout_gravity="center|top"
                    android:layout_height="wrap_content"
                    android:layout_weight="2"
                    android:textColor="@color/darkcolor"
                    android:textSize="20sp"
                    android:text="@string/versedisplay"/>
                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_gravity="top"
                    android:layout_height="wrap_content"
                    android:orientation="vertical">


                    <ImageView
                        android:id="@+id/speakverse"
                        android:layout_width="28dp"
                        android:layout_marginTop="10dp"
                        android:layout_height="28dp"
                        fab:srcCompat="@drawable/speak" />

                    <ImageView
                        android:layout_width="28dp"
                        android:layout_height="28dp"
                        android:id="@+id/share"
                        android:paddingTop="-10dp"
                        android:layout_marginTop="10dp"
                        android:src="@drawable/ic_share_black_24dp"/>


                    <ToggleButton
                        android:id="@+id/adbookmark"
                        android:layout_marginTop="10dp"
                        android:layout_width="27dp"
                        android:layout_height="28dp"
                        android:layout_gravity="right"
                        android:background="@drawable/toggle_selector"
                        android:textOff=""
                        android:textOn="" />


                </LinearLayout>

            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:textAlignment="center"
                android:layout_gravity="top"
                android:layout_height="wrap_content"
                android:orientation="horizontal">


            </LinearLayout>
        </LinearLayout>




<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".ALLVERSE">
    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="@color/colorAccent"
        app:popupTheme="@style/AppTheme.PopupOverlay">
        <TextView
            android:id="@+id/bookname"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:textSize="20sp"
            android:textColor="#ffffff"
            android:textStyle="bold"
            android:text="ALL VERESE" />
    </android.support.v7.widget.Toolbar>

    <ListView
        android:layout_below="@+id/toolbar"
        android:id="@+id/mylistview"
        android:divider="@null"
        android:dividerHeight="3dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</RelativeLayout>


<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".ALLVERSE">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="@color/colorAccent"
            app:popupTheme="@style/AppTheme.PopupOverlay"/>

    </android.support.design.widget.AppBarLayout>



    <include layout="@layout/allversecontent" />



</android.support.design.widget.CoordinatorLayout>




<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:openDrawer="start">
    <include
        layout="@layout/allverseappbar"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
    <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        app:headerLayout="@layout/nav_header_main"
        app:menu="@menu/activity_main_drawer" />

</android.support.v4.widget.DrawerLayout>

















     package bible.swordof.God;

        import android.content.Intent;
        import android.content.SharedPreferences;
        import android.database.Cursor;
        import android.database.sqlite.SQLiteDatabase;
        import android.support.annotation.NonNull;
        import android.support.design.widget.NavigationView;
        import android.support.v4.app.Fragment;
        import android.support.v4.view.GravityCompat;
        import android.support.v4.widget.DrawerLayout;
        import android.support.v7.app.ActionBarDrawerToggle;
        import android.support.v7.app.AppCompatActivity;
        import android.os.Bundle;
        import android.support.v7.widget.Toolbar;
        import android.view.MenuItem;
        import android.view.View;
        import android.widget.AdapterView;
        import android.widget.ArrayAdapter;
        import android.widget.GridView;
        import android.widget.ListView;
        import android.widget.TextView;
        import android.widget.Toast;

        import java.util.ArrayList;

        import es.dmoral.toasty.Toasty;

        public class ALLVERSE extends AppCompatActivity  implements NavigationView.OnNavigationItemSelectedListener {
            private ListView listView;
            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 adopter;



            @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();

                listView =findViewById(R.id.list);


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


                listView.setAdapter(adopter);


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


                        Toast.makeText(ALLVERSE.this, "LIFE RUNS ON CODE", 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;
            }

        }



    My adopter customadopter class:
    package bible.swordof.God;

    import android.app.Activity;
    import android.content.ContentValues;
    import android.content.Context;
    import android.content.DialogInterface;
    import android.content.Intent;
    import android.content.SharedPreferences;
    import android.database.Cursor;
    import android.database.SQLException;
    import android.database.sqlite.SQLiteDatabase;
    import android.graphics.Color;
    import android.opengl.Visibility;
    import android.preference.PreferenceManager;
    import android.speech.tts.TextToSpeech;
    import android.support.v7.app.AlertDialog;
    import android.support.v7.app.AppCompatActivity;
    import android.util.Log;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.view.Window;
    import android.widget.ArrayAdapter;
    import android.widget.Button;
    import android.widget.CompoundButton;
    import android.widget.ImageView;
    import android.widget.TextView;
    import android.widget.Toast;
    import android.widget.ToggleButton;

    import com.amulyakhare.textdrawable.TextDrawable;
    import com.amulyakhare.textdrawable.util.ColorGenerator;


    import java.util.ArrayList;
    import java.util.List;
    import java.util.Locale;

    import es.dmoral.toasty.Toasty;
    import petrov.kristiyan.colorpicker.ColorPicker;

    import static android.content.Context.MODE_PRIVATE;
    import static android.database.sqlite.SQLiteDatabase.CONFLICT_NONE;
    import static android.icu.lang.UCharacter.GraphemeClusterBreak.V;
    import static android.support.constraint.Constraints.TAG;
    import static android.support.v4.content.ContextCompat.createDeviceProtectedStorageContext;
    import static android.support.v4.content.ContextCompat.startActivity;

    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





            //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();


        }

    }

1 Ответ

0 голосов
/ 28 мая 2019

Используйте это:

listView.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position,long id) {
        Toast.makeText(ALLVERSE.this, "LIFE RUNS ON CODE", Toast.LENGTH_SHORT).show();
    }
});

Вместо:

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Toast.makeText(ALLVERSE.this, "LIFE RUNS ON CODE", Toast.LENGTH_SHORT).show();
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...