嵌套对象访问父属性

时间:2014-05-23 01:04:30

标签: java android

我是Java的新手,我有一个简单的问题。在下面的代码中:

conversation.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {          
            if (adapter.getItem(position).image && adapter.getItem(position).left) {
                String imgName = ((Message)arg1.findViewById(R.id.imageUploaded).getTag()).message;
                try {
                    AlertDialog.Builder confirmQuit = new AlertDialog.Builder(Chat.this);
                    confirmQuit.setMessage("Download image?");

                    // Buttons on dialog
                    confirmQuit.setPositiveButton("Download", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {

                        }
                    });
                    confirmQuit.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            // Do nothing
                        }
                    });
                    confirmQuit.create();

                } catch (Exception e) {
                    e.printStackTrace();
                }

            }
        }
    });
}

这是一个Android代码,我想知道如何访问position内的变量imgNameDialogInterface.OnClickListener

通常在这些情况下,我会创建一个&#34;全球&#34;私有变量作为我活动的一个属性,所以我可以在任何地方访问它,但它看起来并不正确。有人可以帮忙吗?

提前致谢。

1 个答案:

答案 0 :(得分:2)

只需更改

String imgName = ...

final String imgName = ...

来自Anonymous Classes的Java教程:

  

访问附加范围的本地变量

     

与本地类一样,匿名类可以捕获变量;他们有   对封闭范围的局部变量的相同访问:

     
      
  • 匿名类可以访问其封闭类的成员。
  •   
  • 匿名类无法访问其封闭范围内未声明为最终或有效最终的局部变量。
  •