onListItemClick在ListView使用片段没有作品 [英] onListItemClick not works in the listview using fragment
问题描述
我已经问这样的事情之一,但我没有找到任何解决办法。现在我想试着寻找出路张贴整个Java code。
问题是,当我在ListView没有点击过的项目发生。似乎 onListItemClick
不解雇。这是code:
I've already ask something like this one but i didn't find any solution.. Now i want try to find a way out posting the entire java code.
The problem is that when i click over a item in the listview nothing happen. Seems that the onListItemClick
is not fired.. This is the code:
@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;
}
}
请我需要帮助..我们的目标是点击一个项目并打开其他活动。谢谢
Please i need a help.. The goal is click on a item and open the other activity. Thanks
推荐答案
您没有连接监听器的ListView:
You didn't attached listener to ListView:
list.setOnItemClickListener(this);
然后你的类必须农具 OnItemClickListener
接口。然后你必须实现此方法:
And then your class have to implements OnItemClickListener
interface. And then you must implement this method:
@Override
public void onItemClick(AdapterView<?> parent, View row, int pos, long id) {
Sensor sensor = sensorAdapter.getItem(pos).getSensor();
String sensorName = sensor.getName();
Intent i = new Intent();
i.setClassName( "com.ab.myapp","com.ab.myapp.SensorMonitor" );
i.putExtra( "sensorname",sensorName );
startActivity( i );
}
这篇关于onListItemClick在ListView使用片段没有作品的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!