如何将变量从clickListener中提取出来用于另一个ClickListener

问题描述:

我想要做的是有一个供用户选择的平台列表。通过点击一个平台,它将相应的sql表名的名称放入一个变量中。但我不知道如何在我的提交按钮clickListener中使用该变量。这里是我正在使用的代码部分。如何将变量从clickListener中提取出来用于另一个ClickListener

String platformText; 

platform.setOnItemClickListener(new OnItemClickListener() 
{ 
    @Override 
    public void onItemClick(AdapterView<?> arg0, View v, int position, long id) 
    { 
    String temp; 

     if(position == 1) 
     { 
      temp = "ps3games"; 
     } 
     else if(position == 2) 
     { 
      temp = "xbox360games"; 
     } 
    } 
}); 
platformText = temp;   

    submitButton.setOnClickListener(new OnClickListener() 
{ 
    public void onClick(View v) 
    { 
      addProduct(platformText) 
     } 
    }); 

我已经删除了对问题不重要的代码。

+0

将“platformText = temp”向上移动1行到setOnItemClickListener中,onItemClick外部给我一个“令牌上的语法错误”=“,删除此令牌”的错误。我认为这可能是解决方案,但这个错误根本没有意义。而项目清理并不能解决它。 – Jon 2013-04-11 19:18:32

试试这个:

String platformText; 

platform.setOnItemClickListener(new OnItemClickListener() 
{ 
    @Override 
    public void onItemClick(AdapterView<?> arg0, View v, int position, long id) 
    { 
     String temp; 

     if(position == 1) 
     { 
      temp = "ps3games"; 
     } 
     else if(position == 2) 
     { 
      temp = "xbox360games"; 
     } 
     platformText = temp; 
     } 
}); 

submitButton.setOnClickListener(new OnClickListener() 
{ 
    public void onClick(View v) 
    { 
     addProduct(platformText) 
    } 
}); 

你需要你的onClickListener内设置platformTitle=temp,你之前做起来那外面。

+0

,它给出了“不能引用在不同方法中定义的内部类中的非最终变量platformText”错误。这是我正在努力解决的问题。 – Jon 2013-04-11 19:14:18

+1

您是否尝试过将'platformText'公开?这会改变什么吗? – TronicZomB 2013-04-11 19:17:57

+0

public String platformText给出“参数platformText的非法修饰符;只允许final” – Jon 2013-04-11 19:19:43