Articles of android context

如何正确扩展LinearLayout以创建自定义视图

我有一些“卡片”,这是一个带有TextView的简单LinearLayout 然后我的主片段有一个垂直的LinearLayout ..在这个主片段中我将这个“卡片”添加到主布局: # main fragment layout View view = inflater.inflate(R.layout.main_activity, null); LinearLayout ll = (LinearLayout) view .findViewById(R.id.main_activity_ll); # get card View card = inflater.inflate(R.layout.card, null); # add to fragment layout ll.addView(card); 这非常好用我的卡填充片段布局的整个宽度。 其实我在期待什么。 现在我为我的卡创建了一个单独的类: Class Card extends LinearLayout{ public Card(Context context) { super(context); View view = LayoutInflater.from(getContext()).inflate( R.layout.card, null); this.addView(view); } } 然后,如果我将卡添加到主片段布局中: # […]

从不扩展Activity的类的startService

我创建了一个扩展IntentService的类,我想从一个不是Activity的类启动服务,因此,我无法访问Context对象。 我在文档或网络上找不到这样的例子。 可能吗 ?

使用Context启动另一个Activity

要启动一个Activity,你需要一个Intent,比如: Intent i = new Intent(context, class) 因此,要填写上下文参数,可以使用以下几个选项: 使用MyActivity.this或只是this 使用getApplicationContext() 使用getBaseContext() 我相信还有一两个选择。 这些选项都出现在某种教程中,一个使用第一个,下一个使用第三个选项。 那么我应该使用哪一个? 它甚至重要吗? 不同的情况有什么不同吗?

从片段中检索上下文

我创建了一个类来从PHP文件中检索JSON编码的注释。 这个类从AsyncTask扩展而来: public class RecuperarComentarisFoto extends AsyncTask{ @Override protected void onPreExecute() { super.onPreExecute(); pDialog = new ProgressDialog(????); pDialog.setMessage(“Creating Product..”); pDialog.setIndeterminate(false); pDialog.setCancelable(true); pDialog.show(); } @Override protected String doInBackground(String… arg0) { // TODO Auto-generated method stub return null; } @Override protected void onPostExecute(String result) { // TODO Auto-generated method stub super.onPostExecute(result); } } 正如你所看到的,我正试图在“doInBackground”进程工作时显示ProgressDialog。 但是progressDialog构造函数,请求一个Context,我不知道如何提供它。 我从Fragment调用这个类,所以我不能像这样访问上下文: pDialog […]

如何查看Android应用程序特定的缓存?

有没有办法在Android中动态查看特定于应用程序的缓存? 我将图像保存到缓存(/ data / data / my_app_package / cache),我99%肯定他们在那里保存,但不确定他们待在一起多久。 当我使用Eclipse中的DDMS文件资源管理器查看缓存时,它始终为空。 我也尝试在ADB中检查适当的缓存目录,并且它总是空的。 有什么建议么?

在android中添加上下文菜单图标

我有一个带有ContextMenu的Listview,但是当我为ContextMenu设置setIcon时,它看起来不起作用 public void onCreateContextMenu(ContextMenu menu , View v, ContextMenuInfo menuInfo){ super.onCreateContextMenu(menu, v, menuInfo); menu.add(0, DELETE_ID, 0, R.string.context_menu_favorite) .setIcon(android.R.drawable.btn_star); }

如何在不参考Context的情况下获取AssetManager?

我有一个类需要获取对它的应用程序的AssetManager的引用。 这个类没有扩展任何types的android UI类,因此它没有getContext()方法或类似的东西。 是否存在某种静态Context.getCurrentApplicationContext()types的方法? 为了澄清:我的类旨在像库一样用于其他应用程序。 它没有关联的AndroidManifest.xml或对调用它的上下文的控制。

Android:静态字段和内存泄漏

我一直在研究在创建视图时防止上下文/活动内存泄漏的最佳实践,而且我似乎无法find关于类中静态字段允许或不允许的内容的明确答案。 假设我有这种forms的代码: public class MyOuterClass extends Activity{ private MyInnerClass; MyInnerClass = (MyInnerClass) findViewById(); MyInnerClass.myXInt = 3; // onCreate(), onResume(), etc. public static class MyInnerClass extends SurfaceView implements Runnable{ // Safe variables? private static int myXInt, myYInt; private static boolean myBoolean; // Potentially safe? private static Canvas myCanvas; // Definitely bad. private static Context myContext; public […]

如何在两个不同的Android应用程序之间共享SharedPreferences文件?

我一直在努力解决这个问题。 基本上,我希望有两个应用程序(将始终一起安装)共享首选项,其中一个只是一个在后台运行并需要使用首选项的服务(应该拥有首选项但只需要真正需要阅读它们) )另一个应用程序是一个前端UI应用程序,需要能够写入其他应用程序拥有的首选项文件。 该服务将在后台执行(可能由首选项确定),UI将允许用户编辑首选项并查看服务中的一些信息。 但是,它们将是不同的包/应用程序。 我尝试了这个教程 ,这让我非常了解如何在一个应用程序中拥有可以被另一个应用程序读取的首选项。 基本上,我通过myContext = createPackageContext(“com.example.package”,Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE);创建一个新的上下文myContext = createPackageContext(“com.example.package”,Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE); 然后调用myContext.getSharedPreferences(“pref_name”, Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE); 但是,我无法从外部应用程序成功写入首选项 – (SharedPreferences.Editor).commit()返回false,我在logcat中收到有关无法编辑pref_name.xml.bak的警告。 如何成功设置我的应用程序,以便它们都可以读取和写入相同的首选项文件(存储在其中一个的数据文件夹中)?

确定上下文是否为特定活动

我将Activity上下文传递给对话框,但该对话框对于其他活动是全局的,因此其他活动也可能创建该对话框。 我的问题是如何确定Activity上下文是一个特定的Activity? 我正在传递ActivityContext,如下所示: private Activity ActivityContext; public MessageDialog(Activity context,int DialogStyle,int Dialog_Layout,String Msg) { super(context,DialogStyle,Dialog_Layout); this.ActivityContext = context; this.Msg = Msg; }