我正试图获得所选项目的位置,如下所示:
//more code (adapter settings etc)
List.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
String selected_item= String.valueOf(adapterView.getItemAtPosition(i));
position=(Integer)List.getTag(); //without this line it doesn't crash
Toast.makeText(Main2Activity.this,"Please Log-In"+selected_item+"Thesi :"+String.valueOf(position),Toast.LENGTH_SHORT).show();
Intent toy = new Intent(Main2Activity.this,Main3Activity.class);
startActivity(toy);
}
});
导致崩溃我的应用。
目标:我希望拥有一个公共变量( 位置 ) 所选项目的位置
Logcat:
12-03 18:16:31.858 4421-4421/gr.aegean.icsd.myapplication W/art: Before Android 4.1, method int android.support.v7.widget.ListViewCompat.lookForSelectablePosition(int, boolean) would have incorrectly overridden the package-private method in android.widget.ListView
让我提一下,我是android studio的新手。
答案 0 :(得分:1)
我猜你有一个想要添加监听器的ListView。在这种情况下,在onItemClick(AdapterView adapterView,View view,int i,long l)方法中,第三个参数 int i 保持位置。
修改强> 如果要在另一个活动中使用int i,最简单的方法是在 setOnItemclick 所在的同一活动中声明一个静态类变量。例如:
class MainActivity extends Activity{
// variable accessible from anywhere in your package
static int global_int;
// other usual code...
// your existing code
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
String selected_item= String.valueOf(adapterView.getItemAtPosition(i));
position=(Integer)List.getTag(); //without this line it doesn't crash
Toast.makeText(Main2Activity.this,"Please Log-In"+selected_item+"Thesi :"+String.valueOf(position),Toast.LENGTH_SHORT).show();
Intent toy = new Intent(Main2Activity.this,Main3Activity.class);
startActivity(toy);
// saving "i"
global_int=i;
}
});
}
然后从您的代码中的任何其他位置,其他活动等,您可以这样访问它:
int get_global_int=MainActivity.global_int;
还有其他方法可以将其保存在SharedPreferences中,但这是最简单的方法。
答案 1 :(得分:1)
试试这个它会给你所选的项目值及其位置。
selectedItemPosition
和你可以在int变量中存储这个项目位置,参见上面修改过的代码,我将所选项目位置存储在int变量selectedItemPosition中。你可以在任何你想要的地方使用address=/dev/127.0.0.1
。