Android 如何将一个变量用于不同的方法?
我在方法setViewValue和setOnItemClickListener中使用变量I时遇到问题。 所以我需要检查表中行的值,然后将其添加到另一个类中。 但是对于这个检查,我需要在两种方法中使用I,或者用另一种方法 你能帮我吗Android 如何将一个变量用于不同的方法?,android,variables,methods,Android,Variables,Methods,我在方法setViewValue和setOnItemClickListener中使用变量I时遇到问题。 所以我需要检查表中行的值,然后将其添加到另一个类中。 但是对于这个检查,我需要在两种方法中使用I,或者用另一种方法 你能帮我吗 String[] from = new String[] { DB.COLUMN_MON, DB.COLUMN_YEAR }; int[] to = new int[] { R.id.textMonth, R.id.textYear }; scAdapter =
String[] from = new String[] { DB.COLUMN_MON, DB.COLUMN_YEAR };
int[] to = new int[] { R.id.textMonth, R.id.textYear };
scAdapter = new SimpleCursorAdapter(this, R.layout.list_item, cursor, from, to);
scAdapter.setViewBinder(new SimpleCursorAdapter.ViewBinder() {
public boolean setViewValue(View view, Cursor cursor, int columnIndex) {
for (int i=0; i < 98; i++){
if (cursor.getString(cursor.getColumnIndex(DB.COLUMN_MON)).equals(dataMonths[0]) && cursor.getString(cursor.getColumnIndex(DB.COLUMN_YEAR)).equals(dataYears[i])){
list.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(Main_month.this, month.class);
intent.putExtra("year", dataYears[i]);
intent.putExtra("month", dataMonths[0]);
startActivity(intent);
finish();
}
});
}
}
return false;
}
});
list.setAdapter(scAdapter);
String[]from=newstring[]{DB.COLUMN\u MON,DB.COLUMN\u YEAR};
int[]to=newint[]{R.id.textmount,R.id.textwear};
scAdapter=new SimpleCursorAdapter(this,R.layout.list_项,光标,from,to);
scAdapter.setViewBinder(新的SimpleCursorAdapter.ViewBinder(){
公共布尔setViewValue(视图、光标、int-columnIndex){
对于(int i=0;i<98;i++){
if(cursor.getString(cursor.getColumnIndex(DB.COLUMN_MON)).equals(dataMonths[0])和cursor.getString(cursor.getColumnIndex(DB.COLUMN_YEAR)).equals(dataYears[i])){
list.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
意向意向=新意向(主月、本月、班级);
意向。额外(“年”,数据年[i]);
intent.putExtra(“月”,数据月[0]);
星触觉(意向);
完成();
}
});
}
}
返回false;
}
});
列表.setAdapter(scAdapter);
谢谢你的帮助!
我用以下方式解决我的问题:
scAdapter.setViewBinder(new SimpleCursorAdapter.ViewBinder() {
public boolean setViewValue(View view, final Cursor cursor, int columnIndex) {
list.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(Main_month.this, month.class);
intent.putExtra("year", cursor.getString(cursor.getColumnIndex(DB.COLUMN_YEAR)));
intent.putExtra("month", cursor.getString(cursor.getColumnIndex(DB.COLUMN_MON)));
startActivity(intent);
finish();
}
});
return false;
}
});
scAdapter.setViewBinder(新的SimpleCursorAdapter.ViewBinder(){
公共布尔setViewValue(视图,最终光标,int columnIndex){
list.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
意向意向=新意向(主月、本月、班级);
intent.putExtra(“年”,cursor.getString(cursor.getColumnIndex(DB.COLUMN_year));
intent.putExtra(“月”,cursor.getString(cursor.getColumnIndex(DB.COLUMN_-MON));
星触觉(意向);
完成();
}
});
返回false;
}
});
在onClick
方法和其他方法中,只有两种方法可以使用变量
onClick
方法中声明变量,并将其作为参数传递给需要的其他方法如果要使用第二种方法,则需要一个更具描述性的变量名,而不仅仅是
i
我想我明白了。您正在将一个项目侦听器添加到列表视图
,除非您一次又一次地这样做。糟糕。nhgrif基本上回答了眼前的问题。我会告诉你不要循环。在当前上下文中,如果不声明全局变量,则无法保存i
。仅设置一次setOnItemClickListener
!这就是位置
变量作为参数包含的原因;所以您知道单击了哪个视图。检查一下。希望这有助于澄清这一点
编辑:我可能应该澄清一下,不要循环和设置每个项目侦听器。设置一次列表器,如果有必要,在click listener(即click listener)中循环。您有一些主要的格式问题,因此很难阅读您的问题。我在setViewValue中声明了一个变量I。我在那里用它。我怎样才能在方法onItemClick中使用这个变量呢?所以使用“setOnItemClickListener”的想法曾经对我很有帮助。程序在没有变量i的情况下工作。谢谢你)我没有使用变量I就意识到了我的问题。但这个答案是正确的。