我有一个问题,如何向AllertDialog显示此数组item_detail?
//Beri keterangan untuk arrayitem detail
ItemDetail item_detail = new ItemDetail();
item_detail.setName("Cake");
item_detail.setItemDescription("");
item_detail.setPrice("5.000");
item_detail.setImageNumber(1);
result.add(item_detail);
item_detail = new ItemDetail();
item_detail.setName("Coklat");
item_detail.setItemDescription("Bulat");
item_detail.setPrice("5.500");
item_detail.setImageNumber(2);
result.add(item_detail);
item_detail = new ItemDetail();
item_detail.setName("Purple");
item_detail.setItemDescription("Cupcake");
item_detail.setPrice("6.000");
item_detail.setImageNumber(3);
result.add(item_detail);
return result;
}
}
这是我的代码:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_view_image);
ArrayList<ItemDetail> image_detail = GetSearchResult();
final ListView lv1 = (ListView) findViewById(R.id.listV_main);
lv1.setAdapter(new ItemListBaseAdapter(this, image_detail));
lv1.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, View view, int position, long id){
Object o = lv1.getItemAtPosition(position);
ItemDetail obj_ItemDetail = (ItemDetail)o;
new AlertDialog.Builder(view.getContext())
.setIcon(obj_ItemDetail.getImageNumber())
.setMessage(obj_ItemDetail.getItemDescription())
.setNegativeButton("Close", null).show();
Toast.makeText(ListViewImageActivity.this, "Anda Memilih : " + " " + obj_ItemDetail.getName(), Toast.LENGTH_SHORT).show();
}
});
}
private ArrayList<ItemDetail> GetSearchResult() {
// TODO Auto-generated method stub
ArrayList<ItemDetail> result = new ArrayList<ItemDetail>();
//Beri keterangan untuk arrayitem detail
ItemDetail item_detail = new ItemDetail();
item_detail.setName("Cake");
item_detail.setItemDescription("");
item_detail.setPrice("5.000");
item_detail.setImageNumber(1);
result.add(item_detail);
item_detail = new ItemDetail();
item_detail.setName("Coklat");
item_detail.setItemDescription("Bulat");
item_detail.setPrice("5.500");
item_detail.setImageNumber(2);
result.add(item_detail);
item_detail = new ItemDetail();
item_detail.setName("Purple");
item_detail.setItemDescription("Cupcake");
item_detail.setPrice("6.000");
item_detail.setImageNumber(3);
result.add(item_detail);
return result;
}
}
我还有一个问题,如何使图片显示在内容区域而不是图标中。你能再帮我吗?所以这是您的完整代码:
XML:(alert_background.xml)
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="15dp" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:gravity="center"
android:text="TextView"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/textView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:gravity="center"
android:text="TextView"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/textView3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:gravity="center"
android:text="TextView"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
</ScrollView>
Java代码:
package com.example.stackoflow_alertdialog;
import java.util.ArrayList;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
public class SOF_AlertDialog extends Activity
{
ArrayList<ItemDetail> image_detail;
private int[] images={R.drawable.ball1,R.drawable.ball2,R.drawable.ball5};
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sof__alert_dialog);
image_detail = GetSearchResult();
final ListView lv1 = (ListView) findViewById(R.id.listV_main);
lv1.setAdapter(new ItemListBaseAdapter());
lv1.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> a, View view, int position, long id)
{
AlertDialog.Builder mAlert = new AlertDialog.Builder(SOF_AlertDialog.this);
view = getLayoutInflater().inflate(R.layout.alert_background,null);
ImageView Content_img = (ImageView)view.findViewById(R.id.imageView1);
TextView Content_txt1 = (TextView)view.findViewById(R.id.textView1);
TextView Content_txt2 = (TextView)view.findViewById(R.id.textView2);
TextView Content_txt3 = (TextView)view.findViewById(R.id.textView3);
Content_img.setImageResource(image_detail.get(position).getImageNumber());
Content_txt1.setText(image_detail.get(position).getName());
Content_txt2.setText(image_detail.get(position).getItemDescription());
Content_txt3.setText("Price: "+image_detail.get(position).getPrice());
// mAlert.setIcon(image_detail.get(position).getImageNumber()).
mAlert.setTitle(image_detail.get(position).getName()).
setView(view).
// setMessage(image_detail.get(position).getItemDescription()+"\nPrice: "+image_detail.get(position).getPrice()).
setPositiveButton("Buy", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.dismiss();
}
}).
setNegativeButton("Cancel", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.dismiss();
}
}).create().show();
}
});
}
private ArrayList<ItemDetail> GetSearchResult()
{
// TODO Auto-generated method stub
ArrayList<ItemDetail> result = new ArrayList<ItemDetail>();
//Beri keterangan untuk arrayitem detail
ItemDetail item_detail = new ItemDetail();
item_detail.setName("Cake");
item_detail.setItemDescription("");
item_detail.setPrice("5.000");
item_detail.setImageNumber(images[0]);
result.add(item_detail);
item_detail = new ItemDetail();
item_detail.setName("Coklat");
item_detail.setItemDescription("Bulat");
item_detail.setPrice("5.500");
item_detail.setImageNumber(images[1]);
result.add(item_detail);
item_detail = new ItemDetail();
item_detail.setName("Purple");
item_detail.setItemDescription("Cupcake");
item_detail.setPrice("6.000");
item_detail.setImageNumber(images[2]);
result.add(item_detail);
return result;
}
private class ItemListBaseAdapter extends BaseAdapter
{
@Override
public int getCount() {
// TODO Auto-generated method stub
return image_detail.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView = getLayoutInflater().inflate(R.layout.custom_row, parent, false);
TextView txtName = (TextView)convertView.findViewById(R.id.textView1);
TextView txtDescription = (TextView)convertView.findViewById(R.id.textView2);
TextView txtPrice = (TextView)convertView.findViewById(R.id.textView3);
ImageView img = (ImageView)convertView.findViewById(R.id.imageView1);
txtName.setText(image_detail.get(position).getName());
txtDescription.setText(image_detail.get(position).getItemDescription());
txtPrice.setText(image_detail.get(position).getPrice());
img.setImageResource(image_detail.get(position).getImageNumber());
return convertView;
}
}
}
我正在使用一个警报对话框,显示一个菜单在应用程序的开始,我想要对话框显示我的两个值,是“名称”从一个对象,这里是警报对话框的代码: 是包含字符串“name”的对象,包含数组
我有一个列表视图,显示了我从Github API得到的一些信息,我为每个项目设置了ItemClickListener,这样我就可以在警报对话框中显示一些关于它们的信息。 在你用重复标记这个之前,我想说这些解决方案都不适合我如何获得在Android系统中点击的列表视图项目的值? 我试过这个: 但我得到了类Cast异常 java.lang.ClassCast异常:us.egek.repofinderf
我知道这已经被问了很多次了,但没有任何答案可以帮助我。 我有一个对话框,它将在某个时刻弹出(当我调用方法“showServerDialog”时)。对话框显示出来,一切正常,直到我使用“negativeButton”关闭对话框,然后旋转屏幕。然后,对话框再次出现,尽管我取消了它。 我读了很多次,如果我使用show Dialog(int id)方法显示对话框并覆盖onCreateDialog(int
我试图在一个对话框中的recyclerView中显示数据,数据是从HTTP请求获取的。 我验证了适配器是否获得了数据——我在适配器中打印了数组长度,结果很好,但由于某些原因它不会显示数据——我所能看到的只是一个空白区域,recyclerView应该在那里。 重要提示:该应用程序运行良好,运行时没有错误或其他问题,回收器视图不存在。 xmi文件:
我正在尝试在AlertDialog中执行CardView的StartActivity,但它不起作用 我在网上找不到任何类似的东西,我也试过用一个按钮,我得到了同样的错误(见文章底部的LogCat) 以下是我的AlertDialog的布局: 这是我的主菜 这是我的日志: