Привет всем, у меня есть следующий код, который восстанавливает некоторые данные с сервера, и когда я нажимаю на любой элемент, он показывает мне идентификатор, который извлекается с сервера. Вместо того, чтобы показывать в тосте, я хочу перейти к другому действию. вот оригинальный код
public class Test extends ListActivity {
Prefs myprefs = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listplaceholder);
this.myprefs = new Prefs(getApplicationContext());
// install handler for processing gui update messages
ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();
JSONObject json = JSONfunctions.getJSONfromURL("http://midsweden.gofreeserve.com/proj/androidjson.php?identifier=" +
Test.this.myprefs.getPersonalno());
try{
JSONArray earthquakes = json.getJSONArray("services");
for(int i=0;i<earthquakes.length();i++){
HashMap<String, String> map = new HashMap<String, String>();
JSONObject e = earthquakes.getJSONObject(i);
map.put("id", String.valueOf(i));
map.put("pic", "Service name : " + e.getString("employeepic"));
map.put("serviceinfo", "" + e.getString("employeename")+ " : "+ e.getString("starttime")
+" To " + e.getString("endtime"));
mylist.add(map);
}
}catch(JSONException e) {
Log.e("log_tag", "Error parsing data "+e.toString());
}
ListAdapter adapter = new SimpleAdapter(this, mylist , R.layout.test,
new String[] { "servicename", "serviceinfo" },
new int[] { R.id.item_title, R.id.item_subtitle });
setListAdapter(adapter);
final ListView lv = getListView();
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
@SuppressWarnings("unchecked")
HashMap<String, String> o = (HashMap<String, String>) lv.getItemAtPosition(position);
Toast.makeText(Test.this, "ID '" + o.get("id") + "' was clicked.", Toast.LENGTH_SHORT).show();
}
});
}
Я пытаюсь настроить этот код, но каждый раз, когда "Force to Close"
Intent intent = new Intent(Test.this, passing.class);
intent.putExtra("Employename", employeename);
startActivity(intent);
для id его сделано следующим образом. но теперь, как можно заменить его на useename
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
@SuppressWarnings("unchecked")
HashMap<String, String> o = (HashMap<String, String>) lv.getItemAtPosition(position);
Intent intent = new Intent(Test.this, passing.class);
intent.putExtra("id", id);
startActivity(intent);
}
});
}
hi umar У меня есть несколько вопросов к вам... Вы пробовали вставлять новую часть нового действия в то место, где вы указали тост. если это так и после вставки, что диалог закрытия силы приходит.. Пожалуйста, проверьте, есть ли у вас класс с передачей имени, а также определено действие в манифесте... если вы все еще получаете силу и просто запустите свой логарифм, который поможет нам решить вашу проблему..