私はこのコードを試しています。私はParse.comを使用してレストラン名を取得し、listViewに配置しています。 名前の1つをクリックすると、詳細ページに移動し、レストランに関する詳細情報を取得できます。 問題は、ListViewの名前をクリックすると詳細ページに移動しますが、何も表示されません。 私はアンドロイドの新機能であり、どのように動作するべきかを完全に理解していません。ここ Parse.com onListItemClick詳細情報が表示されません
は、レストランの名前を表示すると仮定し、私のmainActivitypublic class MainActivity extends Activity {
private CustomAdapter urgentTodosAdapter;
private ParseQueryAdapter<ParseObject> mainAdapter;
private ListView listView;
List<ParseObject> Name =new ArrayList<ParseObject>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listview);
mainAdapter = new ParseQueryAdapter<ParseObject>(this,"RestaurantDetail");
urgentTodosAdapter = new CustomAdapter(this);
listView = (ListView) findViewById(R.id.listView1);
listView.setAdapter(urgentTodosAdapter);
urgentTodosAdapter.loadObjects();
// Binds the Adapter to the ListView
listView.setAdapter(urgentTodosAdapter);
// Capture button clicks on ListView items
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
// Send single item click data to SingleItemView Class
Intent random1 = new Intent(MainActivity.this, SingleItemView.class);
if (Name.size() > i)
// Pass data "name" followed by the position
random1.putExtra("Name", Name.get(i).getString("Name"));
// Open SingleItemView.java Activity
startActivity(random1);
}
});
}
}
のコードと私のcustomAdapterクラス
public class CustomAdapter extends ParseQueryAdapter<ParseObject> {
public CustomAdapter(Context context) {
super(context, new ParseQueryAdapter.QueryFactory<ParseObject>() {
public ParseQuery create() {
ParseQuery query = new ParseQuery("RestaurantDetail");
/* query.whereEqualTo("Name", true);*/
return query;
}
});
}
@Override
public View getItemView(ParseObject object, View v, ViewGroup parent) {
if (v == null) {
v = View.inflate(getContext(), R.layout.activity_main, null);
}
super.getItemView(object, v, parent);
ParseImageView todoImage = (ParseImageView) v.findViewById(R.id.icon);
ParseFile imageFile = object.getParseFile("Logo");
if (imageFile != null) {
todoImage.setParseFile(imageFile);
todoImage.loadInBackground();
}
TextView titleTextView = (TextView) v.findViewById(R.id.textView3);
titleTextView.setText(object.getString("Name"));
return v;
}
}
とクラスであるなど
@ParseClassName("RestaurantDetail")
public class SingleItemView extends Activity {
// Declare Variables
protected TextView txtname;
String Name;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Get the view from SingleItemView.xml
setContentView(R.layout.single_item_view);
txtname = (TextView) findViewById(R.id.name);
// Retrieve data from MainActivity on item click event
Intent random1 = getIntent();
// Get the name
Name = random1.getStringExtra("Name");
// Locate the TextView in singleitemview.xml
// Load the text into the TextView
txtname.setText(Name);
}
}
「onCreate」コードを別のアクティビティ、つまりカスタムアダプターに移動します。 'RestaurantDetail'クラスは、パースクラスの初期化とset/getterを使用するためのものです。それでもコードが必要な場合は、私にお知らせください。私はあなたのために投稿します。 – AndroidDev21921
AndroidDev21921、可能であれば投稿してください。大変感謝しています:) –
喜んでそれが働いた - あなたは何か質問があれば、私に知らせてください! – AndroidDev21921