- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
谁能告诉我如何在扩展BaseAdapter
的类中调用Activity
的函数?
//我的 Activity
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class MyPage extends Activity {
private Activity mContext;
Button createForm;
Button ConfExpandRegion, Cancelb;
String ExpandMsg, CancelMsg;
boolean b;
MyCaseClass mycase;
TextView tvCase;
AlertDialog alertDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mypage);
// Moving to anther activity
createForm = (Button) findViewById(R.id.creat_new_formbtn);
createForm.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent j = new Intent(MyPage.this, CreateNewForm.class);
startActivity(j);
}
});
// ============================================================================================
// for list
ListView list = (ListView) findViewById(R.id.mypage_list);
list.setClickable(true);
final List<MyCaseClass> listOfPhonebook = new ArrayList<MyCaseClass>();
MyCasesListAdapter adapter = new MyCasesListAdapter(this, listOfPhonebook);
for (MyCaseClass m : All_Static.getMyCaseList())
adapter.add(new MyCaseClass(m));
// after fill the adapter.. assign the list to the adapter
list.setAdapter(adapter);
list.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View view, int position, long index) {
System.out.println("sadsfsf");
;
}
});
list.setAdapter(adapter);
// ========================================================================================
}
public void sendSMS(String number, String msg) throws Exception {
if (!b) {
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(number, null, msg, null, null);
}
b = true;
}
// ========================================================================
public void ShowingDialog(){
final AlertDialog alertDialog = new AlertDialog.Builder(this).create();
alertDialog.setTitle("Conformation");
alertDialog.setMessage("Are you sure you want to Expand Report Region?");
alertDialog.setButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//some codes
}
ConfExpandRegion.setEnabled(false);
}
});
alertDialog.setButton2("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// here you can add functions
// Do nothing
}
});
alertDialog.setIcon(android.R.drawable.ic_dialog_alert);
alertDialog.show();
}
}
//======我的基础适配器==========
import java.util.List;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.TextView;
public class MyCasesListAdapter extends BaseAdapter {
private Context context;
private List<MyCaseClass> listOfCases;
// TODO delete it not imp.
public MyCasesListAdapter() {
super();
}
public MyCasesListAdapter(Context context, List<MyCaseClass> listPhonebook) {
this.context = context;
this.listOfCases = listPhonebook;
}
public int getCount() {
return listOfCases.size();
}
public Object getItem(int position) {
return listOfCases.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup viewGroup) {
MyCaseClass entry = listOfCases.get(position);
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.mypage_row, null);
}
// this is row items..
// Set the onClick Listener on this button
Button ConfExpandRegion = (Button) convertView
.findViewById(R.id.expand);
Button Cancelb = (Button) convertView.findViewById(R.id.cancelCase);
TextView tvCase = (TextView) convertView.findViewById(R.id.mypage_name);
// To be a clickable button
ConfExpandRegion.setFocusableInTouchMode(false);
ConfExpandRegion.setFocusable(false);
// For Dialog
ConfExpandRegion.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
// To be a clickable button
Cancelb.setFocusableInTouchMode(false);
Cancelb.setFocusable(false);
Cancelb.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
MyCaseClass entry = (MyCaseClass) v.getTag();
listOfCases.remove(entry);
// listPhonebook.remove(view.getId());
notifyDataSetChanged();
}
});
// Set the entry, so that you can capture which item was clicked and
// then remove it
// As an alternative, you can use the id/position of the item to capture
// the item
// that was clicked.
ConfExpandRegion.setTag(entry);
Cancelb.setTag(entry);
// btnRemove.setId(position);
return convertView;
}
public void onClick(View view) {
MyCaseClass entry = (MyCaseClass) view.getTag();
listOfCases.remove(entry);
// listPhonebook.remove(view.getId());
notifyDataSetChanged();
}
private void showDialog(MyCaseClass entry) {
// Create and show your dialog
// Depending on the Dialogs button clicks delete it or do nothing
}
public void add(MyCaseClass myCaseClass) {
// TODO Auto-generated method stub
listOfCases.add(myCaseClass);
}
}
我想在 BaseaAdapter 中调用 ShowingDialog,因为 BaseAdapter 不属于 AlertDialog!!
最佳答案
只需更改您的:
private Context context;
至
private MyPage myPage;
然后在showDialog中调用
myPage.ShowingDialog();
关于java - 从 BaseAdapter 内的 Activity 调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10336050/
好的,我一直在仔细搜索,但我在实现 BaseAdapter 时遇到了一些问题。 我已经能够实现一个简单的游标适配器 http://developer.android.com/resources/sam
我将使用下面的代码从服务器(URL)加载适配器的图像。它适用于新型移动设备。但是,旧模型会崩溃并返回“java.lang.OutOfMemoryError”。它将把 A 行或 B 行标记为错误。如何避
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我想在 ListView 中显示具有多列的数组。 调用 View.getView() 时出现此错误: android.widget.linerlayout cannot be cast to andr
嗨,我已经扩展了 BaseAdapter,我的列表大小是 20,但它只显示了 7 条记录,在第 7 条记录之后它又从 0 开始显示。 公共(public)类 ContactsAdapter 扩展 Ba
大家 最近在用ADT开发android 2.2的程序。程序在模拟器上运行正常,但在真机上运行却遇到了一个奇怪的问题。 我使用 BaseAdapter 创建一个 MenuAdapter,它将加载名为 V
这是我的自定义 BaseAdapter 的构造函数 public MyAdapterAds(Activity activity, BaseAdapter delegate) { this.ac
我有一个像这样的 JSON 数组:[{"usename":"user", "user_pic":"picture", "photo":"http://hfhfhfhhfh.jpg", "timesta
嗨,我是这个机器人的新手。我只是对基本适配器感到困惑。我的问题是考虑在一个数组中我有 10 个项目(从 0 到 9)。在 baseadapter 的 getview() 选项中,我在 textview
有没有办法通过 getApplicationContext() 获取 BaseAdapter 类中的 context? 我需要这个,因为我要从 url 加载图像。我在这里使用 context: 这是在
我有一个 ListView,它扩展了 BaseAdapter。我有一个数据 [] 数组。 ListView 正确膨胀和填充。我想要做的是在用户选择项目时以及是否选择了上一个项目时,使 ImageVie
无论如何,我正在努力制作的应用程序都有一个简单的列表和一个位于底部的按钮。我的问题是我的自定义 BaseAdapter 不显示元素。我知道,因为我的元素只是一个字符串,所以我可以使用 ArrayAda
我正在尝试将一个整数数组传递给一个 baseadapter,这样 A.class 就会将一个整数数组传递给 B.class 中的 BaseAdapter。以下是我在 A.Class(发件人)中传递整数
我在运行刚从 ADT(Eclipse) 转换而来的 android 项目时遇到此错误。 找到一个话题 here但没有回答。谁有解决办法? 最佳答案 这是解决方法。 类 XXXAdapter 扩展了 a
我正在使用 Android Studio 创建 Android 应用程序。我在使用自定义 SimpleAdapter 的 Activity 中有 ListView 。我需要在自定义适配器中使用自定义字
我使用了 ListView 。我有 5 件元素。当我启动程序时,我只看到 3. 处理程序,用于进度条开始处理 3/5 项目。我去看 4,5 项,所以我从 View 1,2 项中丢失了。 4 和 5 项
我有一个自定义BaseAdapter对于我的ListView我在其中实现 AdapterView.OnItemClickListener . 问题是onItemClick(AdapterView, V
在我的应用程序中,我遇到了与 here 相同的错误或here但是,建议的清理 Eclipse 项目的解决方案对我不起作用。具体来说,我有一个自定义 ListView 适配器,它尝试从其布局文件加载两个
我有一个 ListView 和一个将值附加到 View 的 Baseadapter 类。适配器类看到除一个之外的所有变量..我不知道该变量是否超出了类的范围..我已经检查过,但似乎找不到问题出在哪里
我刚刚构建了一个扩展 BaseAdapter 的新类。我相信我已经正确设置了所有内容,但是,当我尝试在 fragment 内设置适配器时,我想使用它,但出现以下错误: 构造函数 HomeBase(Ho
我是一名优秀的程序员,十分优秀!