跟踪按钮从服务器单击列表视图。Android-Java
我使用AsyncResponse从托管在服务器上的数据库获取数据。我将这些数据用作可点击列表视图中的场馆。在用户点击一个场馆后,它将引导他们进入VenueID指向的场馆页面。我的问题是,确定单击了哪个场馆的最佳方法是什么,以及如何将该信息传递给另一个将显示场馆页面活动的类?在此问题上的任何帮助都将不胜感激 干杯跟踪按钮从服务器单击列表视图。Android-Java,java,php,android,json,Java,Php,Android,Json,我使用AsyncResponse从托管在服务器上的数据库获取数据。我将这些数据用作可点击列表视图中的场馆。在用户点击一个场馆后,它将引导他们进入VenueID指向的场馆页面。我的问题是,确定单击了哪个场馆的最佳方法是什么,以及如何将该信息传递给另一个将显示场馆页面活动的类?在此问题上的任何帮助都将不胜感激 干杯 public class MainMenu extends AppCompatActivity implements AsyncResponse { private ArrayList&
public class MainMenu extends AppCompatActivity implements AsyncResponse {
private ArrayList<GetVenue> venuelist;
private ListView lvVenue;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_menu);
Button mapButton = (Button) findViewById(R.id.location);
PostResponseAsyncTask taskRead = new PostResponseAsyncTask(MainMenu.this, this);
taskRead.execute("my url");
//Map button - open map page
mapButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
startActivity(new Intent(MainMenu.this, MapActivity.class));
}
});
}
public void OnClickVenue (View view){
// Toast.makeText(getApplicationContext(),name,Toast.LENGTH_LONG).show();
Intent appInfo = new Intent(MainMenu.this, VenueActivity.class);
startActivity(appInfo);
}
@Override
public void processFinish(String s) {
venuelist = new JsonConverter<GetVenue>().toArrayList(s, GetVenue.class);
final BindDictionary<GetVenue> dict = new BindDictionary<GetVenue>();
/* dict.addStringField(R.id.VenueID, new StringExtractor<GetVenue>(){
@Override
public String getStringValue(GetVenue venue, int position){
return "" + venue.VenueID;
}
});*/
dict.addStringField(R.id.VenueName, new StringExtractor<GetVenue>() {
@Override
public String getStringValue(GetVenue venue, int position) {
return venue.VenueName;
}
});
/* dict.addStringField(R.id.Phone, new StringExtractor<GetVenue>() {
@Override
public String getStringValue(GetVenue venue, int position) {
return venue.Phone;
}
});*/
FunDapter<GetVenue> adapter = new FunDapter<>
(MainMenu.this, venuelist, R.layout.layout_main, dict);
lvVenue = (ListView) findViewById(R.id.lvVenue);
lvVenue.setAdapter(adapter);
/* On click of venue String, open Venue page*/
lvVenue.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Intent appInfo = new Intent(MainMenu.this, VenueActivity.class);
startActivity(appInfo);
}
});
}
public类主菜单扩展AppCompatActivity实现异步响应{
私人ArrayList venuelist;
私人列表视图;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u主菜单);
按钮映射按钮=(按钮)findViewById(R.id.location);
PostResponseAsyncTask taskRead=新建PostResponseAsyncTask(main menu.this,this);
taskRead.execute(“我的url”);
//地图按钮-打开地图页面
mapButton.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
startActivity(新意图(MainMenu.this、MapActivity.class));
}
});
}
公共场馆(视图){
//Toast.makeText(getApplicationContext(),name,Toast.LENGTH_LONG.show();
Intent appInfo=新Intent(main menu.this,VenueActivity.class);
星触觉(appInfo);
}
@凌驾
公共void processFinish(字符串s){
venuelist=new JsonConverter().toArrayList(s,getVincement.class);
final BindDictionary dict=新建BindDictionary();
/*dict.addStringField(R.id.VenueID,新StringExtractor(){
@凌驾
公共字符串getStringValue(getVincement,int位置){
返回“+VICENT.VenueID”;
}
});*/
dict.addStringField(R.id.VenueName,新的StringExtractor(){
@凌驾
公共字符串getStringValue(getVincement,int位置){
返回地点.VenueName;
}
});
/*dict.addStringField(R.id.Phone,新StringExtractor(){
@凌驾
公共字符串getStringValue(getVincement,int位置){
返回场地。电话;
}
});*/
FunDapter适配器=新的FunDapter
(main menu.this,venuelist,R.layout.layou_main,dict);
lvVenue=(列表视图)findViewById(R.id.lvVenue);
lvvince.setAdapter(适配器);
/*单击场馆字符串,打开场馆页面*/
lvvince.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
Intent appInfo=新Intent(main menu.this,VenueActivity.class);
星触觉(appInfo);
}
});
}
}单击api返回位置,根据该位置,您将使用列表api get(位置)获取所选项目
lvvince.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
GetVincement getVincement=venuelist.get(位置);//使用位置int获取对应的数据
Intent appInfo=新Intent(main menu.this,VenueActivity.class);
星触觉(appInfo);
}
});
GetVenue GetVenue=venuelist.get(位置)我为看到场馆位置的价值干杯,结果它带着“。。。GetVenue@8558be9“我如何利用这些信息为该场馆构建下一页?即,从数据库中提取数据databaseGetVenuce@8558be9是对象,因此您需要为打印GetVinceMethod中的所有值创建方法。有关更多信息,请参阅此
lvVenue.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
GetVenue getVenue = venuelist.get(position);//using position int get correspondig data
Intent appInfo = new Intent(MainMenu.this, VenueActivity.class);
startActivity(appInfo);
}
});