Я уже прошу что-то вроде этого, но я не нашел никакого решения. Теперь я хочу попытаться найти выход из всего кода Java. Проблема в том, что когда я нажимаю элемент в списке, ничего не происходит. Кажется, что onListItemClick
не уволили .. Это код:onListItemClick не работает в списке с использованием фрагмента
@SuppressLint("NewApi")
public class sensorsbattcpu extends Fragment{
private ListView listView;
private SensorManager mSensorManager;
private List<Sensor> deviceSensors = null;
public Context context;
ListView list;
public static final String PREF_CAPTURE_STATE = "captureState";
public static final String PREF_CAPTURE_FILE = "captureStatePrefs";
static final int MENU_CAPTURE_ON = 1;
static final int MENU_CAPTURE_OFF = 2;
/** Called when the activity is first created. */
@SuppressLint("NewApi")
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Retrieving the currently selected item number
int position = getArguments().getInt("position");
// List of rivers
String[] menus = getResources().getStringArray(R.array.menus);
View v = inflater.inflate(R.layout.sensorsfragment, container, false);
// Listview nel sensors.xml layout
listView = ((ListView)v.findViewById(R.id.listView1));
mSensorManager = (SensorManager) getActivity().getSystemService(Context.SENSOR_SERVICE);
ArrayList<SensorItem> items = new ArrayList<SensorItem>();
List<Sensor> sensors = mSensorManager.getSensorList(Sensor.TYPE_ALL);
for(int i = 0 ; i < sensors.size() ; ++i)
items.add(new SensorItem(sensors.get(i)));
sensorAdapter = new ArrayAdapter(getActivity(),R.layout.customlistview,R.id.text1,items);
listView.setAdapter(sensorAdapter);
SharedPreferences appPrefs = getActivity().getSharedPreferences(PREF_CAPTURE_FILE, Context.MODE_PRIVATE);
captureState = appPrefs.getBoolean(PREF_CAPTURE_STATE, false);
return v;
}
public void onPause() {
super.onPause();
SharedPreferences appPrefs = getActivity().getSharedPreferences(PREF_CAPTURE_FILE, Context.MODE_PRIVATE);
SharedPreferences.Editor ed = appPrefs.edit();
ed.putBoolean(PREF_CAPTURE_STATE, captureState);
ed.commit();
}
public boolean onCreateOptionsMenu(Menu menu) {
boolean result = onCreateOptionsMenu(menu);
menu.add(0, MENU_CAPTURE_ON, 1, R.string.capture_on);
menu.add(0, MENU_CAPTURE_OFF, 2, R.string.capture_off);
return result;
}
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
switch(id) {
case MENU_CAPTURE_ON:
captureState = true;
break;
case MENU_CAPTURE_OFF:
captureState = false;
break;
}
return true;
}
@SuppressLint("NewApi")
protected void onListItemClick(ListView l, View v, int positionItem, long id) {
Sensor sensor = sensorAdapter.getItem(positionItem).getSensor();
String sensorName = sensor.getName();
Intent i = new Intent();
i.setClassName("com.ab.myapp","com.ab.myapp.SensorMonitor");
i.putExtra("sensorname",sensorName);
startActivity(i);
}
private ArrayAdapter<SensorItem> sensorAdapter;
private boolean captureState = false;
class SensorItem {
SensorItem(Sensor sensor) {
this.sensor = sensor;
}
@SuppressLint("NewApi")
public String toString() {
return sensor.getName();
}
Sensor getSensor() {
return sensor;
}
private Sensor sensor;
}
}
Пожалуйста, мне нужна помощь .. Поставленная цель нажмите на элемент и открыть другую деятельность. Благодаря
Я попытался добавить инструменты, но он говорит: 'Тип sensorbattcpu должен реализовать унаследованный абстрактный метод AdapterView.OnItemClickListener.onItemClick (AdapterView >, View, int, long)' –
@David_D внимательно проверьте мой ответ. – Sajmon
, когда вы пишете: '// делаете ваши вещи' именно то, что мне писать? и моя часть 'protected void onListItemClick' должна остаться там? –