Android 如何从ListView中适配器的SetOnItemClickListener调用新意图
下面是带有适配器的listview的代码Android 如何从ListView中适配器的SetOnItemClickListener调用新意图,android,listview,android-intent,adapter,Android,Listview,Android Intent,Adapter,下面是带有适配器的listview的代码 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_online_users); final ListView listview = (ListView) findViewById(R.id.listviewusers); //o
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_online_users);
final ListView listview = (ListView) findViewById(R.id.listviewusers);
//onlineUsers.setAdapter()
//final ListView listview = (ListView) findViewById(R.id.listview);
Intent intent = getIntent();
String username = intent.getStringExtra(connection.SERVER_ONLINE_USERS);
String[] values = username.split(",");
final ArrayList<String> list = new ArrayList<String>();
for (int i = 0; i < values.length; ++i) {
list.add(values[i]);
}
final StableArrayAdapter adapter = new StableArrayAdapter(this,
android.R.layout.simple_list_item_1, list);
listview.setAdapter(adapter);
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, final View view,
int position, long id) {
final String item = (String) parent.getItemAtPosition(position);
// view.setAlpha(1);
}
});
}
但是当我在我的onItemClickListener()
中使用上述Intent
代码时,我会得到一个错误
"The Constructor Intent(New AdapterView.OnItemClickListener(){}, Class<activity>) is undefined"
我对这个问题感到困惑,因为你似乎知道怎么做。让我们把它放在一起
@Override
public void onItemClick(AdapterView<?> parent, final View view,
int position, long id) {
final String item = (String) parent.getItemAtPosition(position);
// view.setAlpha(1);
Intent i = new Intent(view.getContext(), activity.class); // get a valid context
i.putExtra("someKey", item); //I don't know where sign came from
startActivity(i);
}
问题是你还没有告诉我们问题出在什么地方。一旦我在listview上单击某个内容,它将保存在最后一个字符串项中,我想将此字符串添加到一个捆绑包并启动一个新的活动。那么在setOnItemClickListener()的onItemClick()中替换你的意图代码有什么问题吗?很抱歉,如果我没有明确说明问题,当我写这篇文章时,我得到了一个错误,建议的解决方法是从intent中删除参数,并像intent i=newintent()那样使用它;“构造函数意图(新AdapterView.OnItemClickListener(){},类)未定义”很抱歉,如果我没有明确说明问题,当我写这篇文章时,我得到了一个错误,建议的解决方法是从意图中删除参数,并像这样使用意图i=New Intent();“构造函数的意图(新的AdapterView.OnItemClickListener(){},类)是未定义的”,虽然我也怀疑这些信息从一开始就非常有价值。再看看我的答案。您没有使用有效的
上下文
不客气。没问题,下次试着记住,如果你不告诉我们,我们通常不知道你有什么问题。通常有很多可能性。写完后,把问题通读一遍,就像你以前从未见过代码一样……这应该会有帮助。
Intent i = new Intent();
@Override
public void onItemClick(AdapterView<?> parent, final View view,
int position, long id) {
final String item = (String) parent.getItemAtPosition(position);
// view.setAlpha(1);
Intent i = new Intent(view.getContext(), activity.class); // get a valid context
i.putExtra("someKey", item); //I don't know where sign came from
startActivity(i);
}
Intent itent = getIntent();
String value = intent.getStringExtra("someKey");