newiconid[0]
の値をに変更する方法onItemSelected()
から変更する必要があります。そして私はonClick()
にその値を使用する必要があります。次のコードは機能しません。newiconid[0]
の値は0
のままです。これを達成する方法は?あなたはそれFINAL作ったオブジェクトの値を内部メソッドから変更するにはどうすればよいですか?
@Override
public void onClick(DialogInterface dialog,
int which) {
final int newiconid[] = new int[1];
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(
AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
System.out.println("" + arg1 + arg2
+ arg3);
newiconid[0] = arg2;
}
@Override
public void onNothingSelected(
AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
// TODO Auto-generated method stub
System.out.println("updateicon "+newiconid[0]+" "+itemid);
datasource.updateVSIcon(newiconid[0], itemid);
}
これはうまくいきました。どのようにしてクラスメンバーにアクセスし、内部のメソッドから変更することができますか? –
それは内部クラスの全体のポイントです。彼らは彼らの囲むクラスと特別な関係を持っています。 – emory
@BinoyBabu私は思う*理由は - それは*内部のメソッドだから*;外部メソッドを呼び出さずに呼び出すことができるもの。したがって、互いに頼ることなく、アクセス可能な範囲を持たなければならない。私が間違っているなら誰か私を修正してください。 –