У меня есть представление списка с тремя элементами, я хочу перейти к новому действию в зависимости от щелчка элемента, то есть каждый элемент при нажатии должен перейти к другому действию , Я попробовал решение, которое были даны аналогичные проблемы, но я до сих пор не понять, как сделать его на другой вид деятельности, переходя к определенному действию при щелчке элемента списка.
package com.example.wizer;
import java.util.ArrayList;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class Options extends Activity implements OnItemClickListener {
WifiManager wifi;
BroadcastReceiver receiver;
IntentFilter filter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_options);
wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
filter = new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);
registerReceiver(rcver, filter);
ListView list = (ListView) findViewById(R.id.l1);
ArrayList <String> List = new ArrayList <String>();
List.add("List available networks .");
List.add("List APs .");
List.add("List Networks according to thier signal strength .");
ArrayAdapter <String> adp = new ArrayAdapter <String> (this, android.R.layout.simple_list_item_1, List);
list.setAdapter(adp);
wifi.startScan();
}
// On create
final BroadcastReceiver rcver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
};
};
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_options, menu);
return true;
}
public void onItemClick(AdapterView <? > arg0, View arg1, int arg2, long arg3) {
// TODO Auto-generated method stub
if (arg3 == 0) {
Intent NL = new Intent(Options.this, Networks.class);
startActivity(NL);
} else if (arg3 == 1) {
Intent NL = new Intent(Options.this, AP.class);
startActivity(NL);
} else if (arg3 == 2) {
Intent NL = new Intent(Options.this, Signal.class);
startActivity(NL);
}
}
}
Извините, но я совершенно новый, вы можете объяснить дальше? где я должен добавить класс? какой параметр является номером строки? Если в моем списке содержится 3 элемента, строки элементов '0,1,2? – Alaa
Вы переданы в идентификаторе строки в слушателе onItemClick. Используйте это как классы примера индекса массива [row]. http://developer.android.com/reference/android/widget/AdapterView.OnItemClickListener.html. Ответ Прагняни тоже хорош. – munch1324
У меня есть три элемента, поэтому я должен сделать класс [3] ?? почему вы написали классы [0] = Integer.class; классы [1] = View.class; и что мне делать в случае моих 3 предметов? – Alaa