Java 将数据从customdialog类传输到父类
在这里,我通过父活动调用customdialog。。其中,由于对话框位于另一个活动中,因此包含listview…从该对话框中,我将从listview传输选定的内容。。但是没有达到我的目标。。并且尝试了很多方法。。有谁能帮助我实现它吗。 注意:我在listitemclick listener中遇到错误 customdialog.classJava 将数据从customdialog类传输到父类,java,android,Java,Android,在这里,我通过父活动调用customdialog。。其中,由于对话框位于另一个活动中,因此包含listview…从该对话框中,我将从listview传输选定的内容。。但是没有达到我的目标。。并且尝试了很多方法。。有谁能帮助我实现它吗。 注意:我在listitemclick listener中遇到错误 customdialog.class public class CustomizeDialog extends Dialog { org.me.dailogfrmchildact.MainActiv
public class CustomizeDialog extends Dialog {
org.me.dailogfrmchildact.MainActivity ma;
Button cancelButton;
ListView list;
int item_pos;
public CustomizeDialog(Context context) {
super(context);
Context cs = context;
/** 'Window.FEATURE_NO_TITLE' - Used to hide the title */
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.dialog);
ma=new MainActivity();
list = (ListView) findViewById(R.id.list);
cancelButton = (Button) findViewById(R.id.OkButton);
ListviewContent.add("item1");
ListviewCount.add("20");
ListviewContent.add("item2");
ListviewCount.add("30");
list.setAdapter(new ListViewAdapter(cs));
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int pos, long arg3) {
item_pos = pos;
System.out.println("===========item_pos" + pos);
ma.txt.setText(ListviewContent.get(pos).toString());
dismiss();
}
});
cancelButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
dismiss();
}
});
}
private static ArrayList<String> ListviewContent = new ArrayList<String>();
private static ArrayList<String> ListviewCount = new ArrayList<String>();
private static class ListViewAdapter extends BaseAdapter {
private LayoutInflater mInflater;
public ListViewAdapter(Context context) {
mInflater = LayoutInflater.from(context);
}
public int getCount() {
return ListviewContent.size();
}
public Object getItem(int position) {
return position;
}
public String getCount(int position) {
return ListviewCount.get(position);
}
public String[] getSizeType(int position) {
String[] str = new String[2];
str[0] = ListviewContent.get(position);
str[1] = ListviewCount.get(position);
return str;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
ListContent holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.listviewinflate, null);
holder = new ListContent();
holder.text = (TextView) convertView.findViewById(R.id.TextView01);
holder.text.setCompoundDrawables(null, null, null, null);
holder.count = (TextView) convertView.findViewById(R.id.TextView02);
holder.count.setCompoundDrawables(null, null, null, null);
convertView.setTag(holder);
} else {
holder = (ListContent) convertView.getTag();
}
holder.text.setText(ListviewContent.get(position));
holder.count.setText(ListviewCount.get(position));
return convertView;
}
static class ListContent {
TextView text;
TextView count;
}
}
}
问题是,您正在CustomizeDialog中创建新的MainActivity,而您应该首先使用创建CustomizeDialog的MainActivity 让CustomizeDialog接受MainActivity而不是上下文,并将ma设置为该值 编辑: 将CustomizeDialog的构造函数更改为:
public CustomizeDialog(MainActivity mainActivity) {
super(mainActivity);
ma = mainActivity; // Instead of ma = new MainActivity()
// everything else is the same
}
问题是,您正在CustomizeDialog中创建新的MainActivity,而您应该首先使用创建CustomizeDialog的MainActivity 让CustomizeDialog接受MainActivity而不是上下文,并将ma设置为该值 编辑: 将CustomizeDialog的构造函数更改为:
public CustomizeDialog(MainActivity mainActivity) {
super(mainActivity);
ma = mainActivity; // Instead of ma = new MainActivity()
// everything else is the same
}
设置编辑文本时。。在设置编辑文本时强制关闭。。它迫使关闭。。