当前位置: 首页 > 面试题库 >

从onclicklistener访问变量

袁高峰
2023-03-14
问题内容

因此,我有一个用于列表视图的onItemLongClickListener,该列表视图传递了一个参数“
int位置”。在内部,我有一个带有两个按钮的alertDialogBu​​ilder。我还有另一个按钮的onclickListener。我需要从第二个侦听器内部访问该位置。反正有没有做到这一点而不使其成为全球性的呢?

public boolean onItemLongClick(AdapterView parent, View itemView, int position, long id){

    AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(BookFace.this);
    alertDialogBuilder.setTitle("Choose an option.");
    alertDialogBuilder
    .setMessage("What would you like to do?")
    .setCancelable(true)
    .setPositiveButton("Edit", new DialogInterface.OnClickListener(){

        @Override
        public void onClick(DialogInterface dialog, int which) {
            Intent intent = new Intent();
            intent.putExtra("position", position); //Can't access this variable
            intent.setClass(SomeClass.this, EditActivity.class);
            startActivity(intent);
    }

谢谢你的帮助。


问题答案:

在Java中,只有先将内部变量声明为,才能从内部类声明访问外部变量final。因此,您可以添加:

final int selectedPosition = position;

到方法的顶部,并在您的额外值中使用该值,即

intent.putExtra("position", selectedPosition);


 类似资料:
  • 问题内容: 有没有办法从javascript访问CSS变量?这是我的css变量声明。 问题答案: 只是标准方式: 获取计算的样式 使用以获得所需的属性的值 getComputedStyle(element).getPropertyValue(‘–color-font-general’); 例:

  • 问题内容: 我需要使用 PHP* 访问 JavaScript 变量。这是我当前正在尝试的代码的简化版本,无法正常工作: * 我对JavaScript和PHP都是全新的,因此,我非常感谢任何建议。 更新 :好的,我想我简化了太多。我正在尝试创建一个表单,该表单在提交时将更新Twitter状态。我的表格工作正常,但我还想添加地理位置数据。由于我使用Javascript(特别是Google Geoloc

  • 问题内容: 我有这个课: 有什么方法可以使用自变量访问静态变量?我宁愿这样做,因为长名称不可读。 问题答案: 使用。这对新旧样式类均适用。

  • 我有另一个名为ProgramWindow的类,在这个类中,我将图像编辑器的所有不同JPanels添加到一个主JFrame,我认为这可能是我的问题所在,因为BufferedImage是空的。以下是ProgramWindow的代码: 我已经得出结论,ProgramWindow中的ButtonPanel传递了一个空参数,但我不知道为什么会这样。我在ImagePanel类中有一个名为getImg的方法,我

  • 问题内容: 我有一些这样的代码: 而且我收到警告,因为使用in闭包是可变变量,所以可能会引起问题。 我该如何避免呢?我的意思是我如何将不可变变量发送给回调,因为这是一个for循环,并且我无法更改代码?换句话说,如何将参数传递给闭包? 问题答案: 您需要创建一个范围以使用自执行功能正确捕获。这是因为整个for循环是一个作用域,也就是说,每次循环都捕获相同的变量。因此,回调将以错误的id结尾,因为的值

  • 问题内容: 如何在Java的do-while循环内部访问变量? 下面的代码写出一个值,直到输入的值不在0到10之间为止。 这是我的代码: 只要输入在0到10之间,循环就会继续要求输入。一旦输入其他数字,循环就会终止并显示所有输入数字的总数。 问题答案: 尝试一下(在循环外将变量声明为a):