标签: android-activity

Android - 如何覆盖"后退"按钮,以便它不完成()我的活动?

我目前有一个活动,当它显示时,通知也将显示在通知栏中.

这样,当用户按下主页并将活动推送到后台时,他们可以通过通知返回活动.

当用户按下后退按钮时,问题就出现了,我的活动被破坏但是通知仍然存在,因为我希望用户能够按下但仍然能够通过通知进入活动.但是当用户尝试这个时,我会尝试Null Pointers尝试启动一项新活动,而不是重新启动旧活动.

所以基本上我希望Back按钮的行为与Home按钮完全相同,这是我到目前为止的尝试方式:


        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event)  {
            if (Integer.parseInt(android.os.Build.VERSION.SDK) < 5
                    && keyCode == KeyEvent.KEYCODE_BACK
                    && event.getRepeatCount() == 0) {
                Log.d("CDA", "onKeyDown Called");
                onBackPressed();
            }

            return super.onKeyDown(keyCode, event);
        }

        public void onBackPressed() {
            Log.d("CDA", "onBackPressed Called");
            Intent setIntent = new Intent(Intent.ACTION_MAIN);
            setIntent.addCategory(Intent.CATEGORY_HOME);
            setIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(setIntent); 

            return;
        }   
Run Code Online (Sandbox Code Playgroud)

但是上面的代码似乎仍然允许我的Activity被销毁,如何在按下后退按钮时阻止我的Activity被销毁?

android back-button nullpointerexception onkeypress android-activity

193
推荐指数
5
解决办法
32万
查看次数

OnActivityResult 方法已弃用,有什么替代方法?

我最近发现 onActivityResult已被弃用。我们应该怎么处理呢?

为此引入了任何替代方案?

显示带有删除 onActivityResult 的代码的图像,表示已弃用

android android-fragments android-activity onactivityresult

192
推荐指数
11
解决办法
10万
查看次数

在Eclipse中将Activity添加到Android项目的最佳方法?

将活动添加到现有Android项目时,我手动创建一个新类 - 这是最佳/首选方式吗?其他人如何处理?

eclipse ide android android-activity

189
推荐指数
3
解决办法
17万
查看次数

Android系统.片段getActivity()有时会返回null

在开发者控制台错误报告中,有时我会看到有NPE问题的报告.我不明白我的代码有什么问题.在模拟器上,我的设备应用程序在没有forcecloses的情况下运行良好,但是当调用getActivity()方法时,一些用户在片段类中获得NullPointerException.

活动

pulic class MyActivity extends FragmentActivity{

    private ViewPager pager; 
    private TitlePageIndicator indicator;
    private TabsAdapter adapter;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        pager = (ViewPager) findViewById(R.id.pager);
        indicator = (TitlePageIndicator) findViewById(R.id.indicator);
        adapter = new TabsAdapter(getSupportFragmentManager(), false);

        adapter.addFragment(new FirstFragment());
        adapter.addFragment(new SecondFragment());
        indicator.notifyDataSetChanged();
        adapter.notifyDataSetChanged();

        // push first task
        FirstTask firstTask = new FirstTask(MyActivity.this);
        // set first fragment as listener
        firstTask.setTaskListener((TaskListener) adapter.getItem(0));
        firstTask.execute();
    }

    indicator.setOnPageChangeListener(new ViewPager.OnPageChangeListener()  {
        @Override
        public void onPageSelected(int position) {
            Fragment currentFragment = adapter.getItem(position);
            ((Taskable) currentFragment).executeTask();
        }

        @Override
        public void onPageScrolled(int …
Run Code Online (Sandbox Code Playgroud)

android nullpointerexception android-asynctask android-fragments android-activity

187
推荐指数
5
解决办法
14万
查看次数

Android中的活动转换

如何定义Android 1.5及更高版本的两个活动之间的转换?我希望活动能够淡出.

android transition android-activity

185
推荐指数
8
解决办法
24万
查看次数

getActivity()在Fragment函数中返回null

我有一个像这样的公共方法的片段(F1)

public void asd() {
    if (getActivity() == null) {
        Log.d("yes","it is null");
    }
}
Run Code Online (Sandbox Code Playgroud)

是的,当我调用它(来自Activity)时,它是null ...

FragmentTransaction transaction1 = getSupportFragmentManager().beginTransaction();
F1 f1 = new F1();
transaction1.replace(R.id.upperPart, f1);
transaction1.commit();
f1.asd();
Run Code Online (Sandbox Code Playgroud)

它一定是我做错了,但我不知道那是什么

null android android-context android-fragments android-activity

182
推荐指数
7
解决办法
15万
查看次数

画布上的Android中心文字

我正在尝试使用下面的代码显示文本.问题是文本不是水平居中的.当我设置坐标时drawText,它会在此位置设置文本的底部.我希望绘制文本,以便文本也水平居中.

这是一张进一步显示我的问题的图片:

截图

@Override
protected void onDraw(Canvas canvas) {
    // TODO Auto-generated method stub
    super.onDraw(canvas);
    //canvas.drawRGB(2, 2, 200);
    Paint textPaint = new Paint();
    textPaint.setARGB(200, 254, 0, 0);
    textPaint.setTextAlign(Align.CENTER);
    textPaint.setTypeface(font);
    textPaint.setTextSize(300);
    canvas.drawText("Hello", canvas.getWidth()/2, canvas.getHeight()/2  , textPaint);
}
Run Code Online (Sandbox Code Playgroud)

java android drawtext android-canvas android-activity

180
推荐指数
5
解决办法
10万
查看次数

Android从视图中获取托管活动

我有一个Activity3 EditText秒和一个自定义视图,它作用一个专门的键盘来添加信息到EditTexts.

目前我正在将Activity视图传递给视图,以便我可以获得当前聚焦的编辑文本并更新自定义键盘中的内容.

有没有一种方法可以引用父活动并在EditText不将活动传递到视图的情况下获得当前的焦点?

android android-edittext android-view android-activity

174
推荐指数
4
解决办法
8万
查看次数

Android:如何获取当前前台活动(来自服务)?

是否有一种原生的android方法来从服务获取对当前运行的Activity的引用?

我有一个在后台运行的服务,我想在事件发生时(在服务中)更新我当前的Activity.有没有一种简单的方法(就像我上面建议的那样)?

service android android-activity

172
推荐指数
7
解决办法
26万
查看次数

如何正确返回父活动?

我在Android应用程序中有2个活动(A和B),我使用意图从活动A到活动B.使用parent_activity:

 <activity
        android:name=".B"
        android:label="B" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.example.app_name.A" />
  </activity>
Run Code Online (Sandbox Code Playgroud)

我还使用了一个提供UP按钮的主题.

因此,在我调用活动之后,BI可以使用UP按钮返回活动A.问题是应用程序似乎再次调用活动A 的onCreate()函数,这不是我需要的行为.我需要活动A看起来像我在调用活动B之前看起来一样.

有没有办法实现这个目标?

提前致谢

编辑:

我没有编写任何代码来从活动A开始活动B.我认为它是由eclipse自动生成的.

B类看起来像:

    @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_b);
    getActionBar().setDisplayHomeAsUpEnabled(true);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_b, menu);
    return true;
}


@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            NavUtils.navigateUpFromSameTask(this);
            return true;
    }
    return super.onOptionsItemSelected(item);
}
Run Code Online (Sandbox Code Playgroud)

android parent android-intent android-activity

172
推荐指数
7
解决办法
15万
查看次数