Articles of android activity

使用编程方式Android添加参数布局

你好我有一个主屏幕。 并且有一个imageButton button = (ImageButton) findViewById(R.id.imageButton1); button.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { if (bIcon == false) { button.setImageResource(R.drawable.plus_yellow); m = myMap.addMarker(new MarkerOptions().position(myMap.getCameraPosition().target).draggable(true)); LinearLayout linLayout = (LinearLayout)findViewById(R.id.lay); t = (TextView)findViewById(R.id.locinfo); linLayout.setVisibility(View.VISIBLE); t.setVisibility(View.VISIBLE); bIcon = true; } else { button.setImageResource(R.drawable.plus_grey); m.remove(); LinearLayout linLayout = (LinearLayout)findViewById(R.id.lay); t.setVisibility(View.INVISIBLE); linLayout.setVisibility(View.INVISIBLE); bIcon = false; } } }); 我想以编程方式添加 LinearLayout.LayoutParams […]

从Fragment调用startActivityForResult不会调用onActivityResult

我有一个DialogActivity ,它从Fragment调用,用于显示带有两个图像按钮的自定义Dialog 。 在DialogActivity.onCreate final Dialog dialog = new Dialog(this, R.style.DialogTheme); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setContentView(R.layout.dialog_pause); dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); dialog.show(); 在DialogActivity.onClick @Override public void onClick(View v) { Log.d(LOGTAG, “onClick CONTINUE”); Intent resultData = new Intent(); resultData.putExtra(“TEST”, “return data”); setResult(666, resultData); dialog.cancel(); } 在Fragment中调用startActivityForResult : Intent dialogActivityIntent = new Intent(getActivity(), DialogActivity.class); startActivityForResult(dialogActivityIntent, 999); 在调用startActivityForResult Activity和Fragment中: @Override public void onActivityResult(int requestCode, […]

检测每个触摸事件而不覆盖dispatchTouchEvent()?

我正在开发Android库,需要跟踪使用它的应用程序上的所有触摸事件。 现在,用户应该在他们的每个活动上覆盖他们的Activity的dispatchTouchEvent() 。 如下所示 @Override public boolean dispatchTouchEvent(MotionEvent event) { MyLib.dispatchTouchEvent(event); return super.dispatchTouchEvent(event); } 但Appsee使用Appsee.start(“key”);检测触摸事件Appsee.start(“key”); 在应用程序启动的第一个活动中集成的onCreate方法。 这怎么可能。 任何帮助?

如何在用户点击通知时启动活动?

我试图转换我在教程中find的一些代码供我自己使用。 最初,当用户单击我的应用程序生成的通知时,代码启动了系统联系人列表。 我正在尝试启动我自己的Activity ,而不是启动联系人列表,但它不起作用。 更具体地说,没有任何反应 没有错误,我的Activity也没有加载。 点击后通知窗口消失,原始Activity仍然可见。 这是我的代码: public class MyBroadcastReceiver extends BroadcastReceiver { private NotificationManager mNotificationManager; private int SIMPLE_NOTFICATION_ID; public void onReceive(Context context, Intent intent){ Bundle extras = intent.getExtras(); String deal = (String) extras.get(“Deal”); String title = “Deal found at ” + (String) extras.get(“LocationName”); mNotificationManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE); Notification notifyDetails = new Notification(R.drawable.icon, title,System.currentTimeMillis()); Class […]

Android上下文没有活动? 还有其他没有活动的节目?

我会尽力把它变成一个全面的问题: 我正在编写一个方法来获取一个包含Android设备城市名称的String,由LocationManager和getLastKnownLocation()以及所有这些确定。 然后我意识到我需要在另一个活动中再次做同样的事情,那么为什么不在我的程序中创建一个完全独立的类( LocationFinder ),而不是在任何地方编写重复的代码? 但是我遇到了困扰我的问题。 例如,如果我创建这个类( LocationFinder ),它是否应该扩展Activity,即使它实际上从未实现过可视化? 所有这个类都会有各种getter,如getLastKnownCity()或getCurrentCity()并返回字符串。 我假设它不会扩展Activity类,因为它实际上不是一个活动。 但那么我将使用什么Context: Geocoder geocoder = new Geocoder(Context context, Locale locale) ? 这让我觉得它必须是一项活动。 所以我扩展了Activity,并用构造函数替换了 @Override protected void onCreate(………….. 但出于某种原因,即使我放了,也永远不会被召唤 String city = new LocationFinder().getLastKnownCity(); 我的第一行LocationFinder的onCreate()是 System.out.println(“HEY!”) 它从来没有达到那个目的。 我在android.internal.os.LoggingPrintStream.println()和其他东西得到一个空指针。 另外,还有一堆来自Activity类的系统常量。 例如,我需要获取LOCATION_SERVICE ,这是一个String,如果不扩展Activity,我就无法获得。 当然,我可以作弊,只是输入文字字符串,但这感觉不对。

启动活动而不显示它

我有一个活动A,它开始活动B,活动B开始活动C.有没有办法不显示活动B.我想要这样的行为,因为如果活动B没有内容(例如ListView),显示活动C on我选择了一些数据,然后按回按钮返回活动B.关键是我想在活动堆栈上有活动B,但在某些情况下不显示它。

WindowManager中的全屏

这是我的代码: params = new WindowManager.LayoutParams( WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY, WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN, PixelFormat.TRANSLUCENT); wm = (WindowManager) getApplicationContext() .getSystemService(Context.WINDOW_SERVICE); inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); mTopView = (ViewGroup) inflater.inflate( R.layout.activity_invisible, null); params.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE | WindowManager.LayoutParams.FLAG_DIM_BEHIND | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |WindowManager.LayoutParams.FLAG_FULLSCREEN; if(keep==true){ int value = brightnessIntent.getExtras().getInt(“value”); float v=value/255.0f; params.dimAmount=0; params.alpha=v; rl = (RelativeLayout) mTopView.findViewById(R.id.window); getWindow().setAttributes(params); getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); wm.addView(mTopView, params); } 视图仍显示状态栏, mTopView是一个叠加窗口。 […]

Android:你如何点击其他活动?

我正试图按顺序进入第三个活动。 从主要活动到第二个活动工作正常,但是当我尝试从第二个活动转到第三个活动时,应用程序崩溃了。 这是我的第二个活动的代码: package com.example.helloandroid; import android.app.Activity; //other imports here public class Game extends Activity implements OnClickListener { private static final String TAG = “Matrix”; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.matrix); View doneButton = findViewById(R.id.done_button); doneButton.setOnClickListener(this); } public void onClick(View v) { switch (v.getId()) { case R.id.done_button: Intent k = new Intent(this, GameTwo.class); […]

尝试重新打开已经关闭的对象:java.lang.IllegalStateException:?

我知道这个问题在SO中多次提出过,但我无法弄清楚我的确切问题。 我使用以下代码从数据库(表1)获取数据,并根据检索值更新另一个Table2。 它在一些Android版本中运行良好,但是当我用Android 4.0.3进行测试时。 我正在考虑这个java.lang.IllegalStateException:?.attempt to re-open an already-closed object在sum_cursor.moveToNext(); java.lang.IllegalStateException:?.attempt to re-open an already-closed object sum_cursor.moveToNext(); 。 我在AsyncTask中使用此代码。 /** Sum of total matched values*/ Cursor sum_cursor = db.gettotalMatchvalue(this); if(sum_cursor!=null) { sum_cursor.moveToFirst(); for(int j=0; j<sum_cursor.getCount();j++) { float totalmatchedscore = sum_cursor.getInt(0); float totalingredients = Float.parseFloat(sum_cursor.getString(sum_cursor.getColumnIndex(APPDatabase.CK_TOTALINCREDIENTS))); /**average = totalscore/totalingredients*/ double average = totalmatchedscore/totalingredients; int id = Integer.parseInt(sum_cursor.getString(sum_cursor.getColumnIndex(APPDatabase.CK_ID))); […]

通过后退按钮关闭活动时返回意图结果

我使用startActivityForResult(intent, requestCode)从原始Activity启动一个新的Activity 。 我想在用户按下后退按钮时将数据返回到原始Activity ,因此返回原始Activity 。 我尝试了两种方法: 覆盖onBackPressed() : @Override public void onBackPressed() { super.onBackPressed(); Intent intent = new Intent(); intent.putIntegerArrayListExtra(SELECTION_LIST, selected); setResult(RESULT_OK, intent); } 重写onPause() : @Override protected void onPause() { super.onPause(); Intent intent = new Intent(); intent.putIntegerArrayListExtra(SELECTION_LIST, selected); setResult(RESULT_OK, intent); } 不幸的是,它们都没有工作(在onActivityResult() resultCode不是RESULT_OK )。 这样做的正确方法是什么? 谢谢!