为什么我的标头混淆了onClicklistener

ebatinstitute

当我在列表视图中添加标题时,它会使我的onclick混乱,它每次都会选择错误的项目。

package ie.example.artur.projectrepeat;

import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class DataListActivity extends AppCompatActivity implements AdapterView.OnItemClickListener {

    ListView listView;
    SQLiteDatabase sqLiteDatabase;
    DatabaseClass  database;
    Cursor cursor;
    ListDataAdapter listDataAdapter;


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

        listView = (ListView) findViewById(R.id.list_view);

        listDataAdapter = new ListDataAdapter(getApplicationContext(), R.layout.row_layout);
        listView.setAdapter(listDataAdapter);
        listView.setOnItemClickListener(this);
        database = new DatabaseClass(getApplicationContext());

        sqLiteDatabase = database.getReadableDatabase();

        Cursor cursor=database.getInformation(sqLiteDatabase);

        if (cursor.moveToFirst()) {
            do {

                String id, product_name, category,quantity,importance;
                id = cursor.getString(0);
                product_name = cursor.getString(1);
                category = cursor.getString(2);
                quantity = cursor.getString(3);
                importance = cursor.getString(4);
                DataProvider dataProvider = new DataProvider(id, product_name, category,quantity,importance);
                listDataAdapter.add(dataProvider);
            } while (cursor.moveToNext());
        }
    }
    @Override
    public void onItemClick(AdapterView<?> parent, final View view, final int position, long id) {


        final TextView tv = (TextView) view.findViewById(R.id.product_id);
        AlertDialog.Builder alert = new AlertDialog.Builder(
                DataListActivity.this);
        alert.setTitle("Alert!!");
        alert.setMessage("Are you sure to delete record");
        alert.setPositiveButton("YES", new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                //do your work here

                sqLiteDatabase = database.getReadableDatabase();

                DatabaseClass.DeleteInformation(tv.getText().toString(), sqLiteDatabase);

                listView.setAdapter(listDataAdapter);
                listDataAdapter.notifyDataSetChanged();
                listDataAdapter.removeItemAt(position);
                dialog.dismiss();
            }
        });
        alert.setNegativeButton("NO", new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {

                dialog.dismiss();
            }
        });

        alert.show();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        {
            switch (item.getItemId())
            {
                case R.id.home : startActivity (new Intent(this, Main2Activity.class));
                    break;

                case R.id.action_settings : startActivity (new Intent(this, SecondActivity.class));
                    break;
                case R.id.catalogue :startActivity (new Intent(this, ViewAllItems.class));
                    break;

                case R.id.ViewList :startActivity (new Intent(this, DataListActivity.class));
                    break;

                case R.id.find :startActivity (new Intent(this, Main3Activity.class));
                    break;

                case R.id.Update :startActivity (new Intent(this, Edit_Activity.class));
                    break;

            }
            return super.onOptionsItemSelected(item);
        }}
}

当我添加以下代码时,它会使我的应用程序混乱:

LayoutInflater myinflater = getLayoutInflater();
        ViewGroup myHeader = (ViewGroup)myinflater.inflate(R.layout.header, listView, false);
        listView.addHeaderView(myHeader, null, false)
段尼尔

这样做的原因是,页眉在您的内部算作另外一项,listview因此单击该项目时您将获得该项目position - 1
在里面添加onItemClick

 position -= listView.getHeaderViewsCount(); // or position - 1 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我的标头流血了?

来自分类Dev

为什么 socket.io 弄乱了我的 ajax 标头?

来自分类Dev

为什么我无法在Scala视图中读取我的自定义标头?

来自分类Dev

为什么我在Chrome中看不到我的HTTP标头?

来自分类Dev

为什么dpkg寻找旧的标头?

来自分类Dev

为什么Gmail不显示我的RFC 2047编码的“发件人”标头?

来自分类Dev

为什么对我的Java GET请求的响应的标头少于Curl的相同URL

来自分类Dev

为什么Jersey吞没了我的“ Content-Encoding”标头

来自分类Dev

为什么我的HTTP请求标头字段中缺少主机?

来自分类Dev

为什么我无法通过HTTP 1.1从youtube获得响应标头?

来自分类Dev

为什么我会看到多个set-cookie标头?

来自分类Dev

为什么我的httpresponsemessage的内容标头未添加到正确的字段?

来自分类Dev

为什么我的ath9k生成的RadioTap标头似乎格式错误?

来自分类Dev

为什么lambda函数在测试中不输出我的标头?

来自分类Dev

为什么我得到与编写响应标头有关的错误/警告?

来自分类Dev

为什么我无法通过HTTP 1.1从youtube获得响应标头?

来自分类Dev

我使用openssl API替换命令,但是解密的数据标头是错误的。为什么?

来自分类Dev

为什么我的代码即使在其他情况下也显示已发送的标头?

来自分类Dev

为什么我不能使用Android HTTPURLConnection设置标头?

来自分类Dev

为什么在使用stream_get_contents时我的Authorization标头消失了?

来自分类Dev

为什么我会看到多个set-cookie标头?

来自分类Dev

为什么我的httpresponsemessage的内容标头未添加到正确的字段?

来自分类Dev

为什么我不能在 Retrofit 上向拦截器请求 OkHttp 添加标头?

来自分类Dev

为什么我的无服务器 Lambda 函数拒绝 Cache-Control 标头?

来自分类Dev

为什么我不能在 Request 对象上设置一些标头?

来自分类Dev

我正在使用基础,但我不知道为什么我的标头未正确居中

来自分类Dev

为什么我的onClickListener应该双击?

来自分类Dev

为什么我的REST服务.NET客户端发送不带身份验证标头的每个请求,然后使用身份验证标头重试?

来自分类Dev

Django为什么要使用我的服务器IP向我发送无效的HTTP_HOST标头?

Related 相关文章

  1. 1

    为什么我的标头流血了?

  2. 2

    为什么 socket.io 弄乱了我的 ajax 标头?

  3. 3

    为什么我无法在Scala视图中读取我的自定义标头?

  4. 4

    为什么我在Chrome中看不到我的HTTP标头?

  5. 5

    为什么dpkg寻找旧的标头?

  6. 6

    为什么Gmail不显示我的RFC 2047编码的“发件人”标头?

  7. 7

    为什么对我的Java GET请求的响应的标头少于Curl的相同URL

  8. 8

    为什么Jersey吞没了我的“ Content-Encoding”标头

  9. 9

    为什么我的HTTP请求标头字段中缺少主机?

  10. 10

    为什么我无法通过HTTP 1.1从youtube获得响应标头?

  11. 11

    为什么我会看到多个set-cookie标头?

  12. 12

    为什么我的httpresponsemessage的内容标头未添加到正确的字段?

  13. 13

    为什么我的ath9k生成的RadioTap标头似乎格式错误?

  14. 14

    为什么lambda函数在测试中不输出我的标头?

  15. 15

    为什么我得到与编写响应标头有关的错误/警告?

  16. 16

    为什么我无法通过HTTP 1.1从youtube获得响应标头?

  17. 17

    我使用openssl API替换命令,但是解密的数据标头是错误的。为什么?

  18. 18

    为什么我的代码即使在其他情况下也显示已发送的标头?

  19. 19

    为什么我不能使用Android HTTPURLConnection设置标头?

  20. 20

    为什么在使用stream_get_contents时我的Authorization标头消失了?

  21. 21

    为什么我会看到多个set-cookie标头?

  22. 22

    为什么我的httpresponsemessage的内容标头未添加到正确的字段?

  23. 23

    为什么我不能在 Retrofit 上向拦截器请求 OkHttp 添加标头?

  24. 24

    为什么我的无服务器 Lambda 函数拒绝 Cache-Control 标头?

  25. 25

    为什么我不能在 Request 对象上设置一些标头?

  26. 26

    我正在使用基础,但我不知道为什么我的标头未正确居中

  27. 27

    为什么我的onClickListener应该双击?

  28. 28

    为什么我的REST服务.NET客户端发送不带身份验证标头的每个请求,然后使用身份验证标头重试?

  29. 29

    Django为什么要使用我的服务器IP向我发送无效的HTTP_HOST标头?

热门标签

归档