标签: oncreate

在android Activity中放置onclick侦听器的正确位置在哪里?

在android活动中放置onclick侦听器的最佳位置在哪里?我见过两种不同的方式。一种方法是将它们放在 onCreate 方法中,另一种方法是将它们放在 onCreate 方法的下方和外部。

我刚刚启动了一个新的 android 应用程序,并且对最好的地方感到困惑。

两种方式如下所示。

伪代码示例一;

oncreate 方法中的 onclick 方法

 MainActivity extends Activity{

 onCreate(){

 onClick listeners 

  } // end of onCreate method

 }  // end of MainActivity class
Run Code Online (Sandbox Code Playgroud)

伪代码示例二;

将 onclick 置于 oncreate 方法下方和外部

 MainActivity extends Activity{

 onCreate(){

 } // end of onCreate method

 onClick listeners

 }  // end of MainActivity class
Run Code Online (Sandbox Code Playgroud)

android position onclick oncreate

3
推荐指数
1
解决办法
6064
查看次数

如何仅在应用程序第一次启动时启动具有特定 Activity 的应用程序?

我只想在我的应用程序第一次启动时启动一个 Activity,从那时起,该应用程序每次都应该与另一个(启动器)活动一起启动。所以我基于这个 SO 答案实现了一个解决方案。

该解决方案围绕boolean一种偏好(startedBeforePreferenceKey在以下代码中作为关键的偏好)。在onCreate()启动器活动中,我尝试使用密钥检索首选项startedBeforePreferenceKey并将其存储在变量中startedBefore。如果首选项不存在,startedBefore则指定为false

然后我检查是否startedBeforefalse,如果是,我创建提到的首选项,为其赋予值true并将其存储在 中SharedPreferences,然后启动此活动,该活动应首次启动应用程序。这样,当下次执行此检查时onCreate()startedBefore将被分配true,因此此启动一次活动将不会启动。

问题是,当应用程序首次启动时,正常启动器会在仅当首次启动应用程序时启动应用程序的活动之前短暂显示。

当应用程序第一次启动时,正常的启动器根本不应该显示。直接地,我想在应用程序首次启动时显示的特殊活动应该显示。

我应该怎么办?

SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
boolean startedBefore = sharedPreferences.getBoolean(getString(R.string.startedBeforePreferenceKey), false);

if (!startedBefore) {
    SharedPreferences.Editor sharedPreferencesEditor = sharedPreferences.edit();
    sharedPreferencesEditor.putBoolean(getString(R.string.startedBeforePreferenceKey), true);
    sharedPreferencesEditor.commit();
    startActivity(new Intent(this, MainActivity.class)); 
} 
Run Code Online (Sandbox Code Playgroud)

编辑: @HammadTariqSahi

首先,摘录自 LogCat:

03-16 08:42:25.629: E/AndroidRuntime(1837): FATAL EXCEPTION: main
03-16 08:42:25.629: E/AndroidRuntime(1837): Process: …
Run Code Online (Sandbox Code Playgroud)

android onresume oncreate android-activity android-launcher

3
推荐指数
1
解决办法
4352
查看次数

如何从其他类调用onCreate方法?

我想打电话给创建(Bundle cicici); 从其他类,然后我得到"NullPointerException",所以请指导我如何从另一个类调用onCreate().

android oncreate

2
推荐指数
1
解决办法
2万
查看次数

SQLiteOpenHelper没有调用onCreate

这是我第一次使用SQLiteOpenHelper(或android上的数据库).当我得到一个可写的数据库时,我想知道为什么onCreate没有被调用在每个新类的实例上.难道我做错了什么?

public class DatabaseHelper extends SQLiteOpenHelper {
    private static final String DATABASE_NAME = "MyDatabase.db";
    private static final int DATABASE_VERSION = 1;
    private String PrSQLcmd = "";


public DatabaseHelper(Context context)
{
    super(context, DATABASE_NAME, null, DATABASE_VERSION);  
}


@Override
public void onCreate(SQLiteDatabase db) 
{
    db.execSQL("CREATE TABLE IF NOT EXISTS Contact(Firstname TEXT, LastName TEXT");
}


@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // TODO Auto-generated method stub

}
Run Code Online (Sandbox Code Playgroud)

}

sqlite android oncreate sqliteopenhelper

2
推荐指数
1
解决办法
6537
查看次数

Android:可以在Activity中的onCreate之外放置HTTP请求吗?

我是Android的新手,试图找出放置HTTP请求的位置,以便只执行一次(当Activity首次显示时).从onActivityResult返回时总是调用onCreate(在这里从相机中获取图片)

有什么建议?

android oncreate

2
推荐指数
1
解决办法
1162
查看次数

Android:按下后退按钮时如何使用OnCreate()

按下我想要的后退按钮时,无论加载什么屏幕,都会执行onCreate()方法.我想要这个,因为在浏览应用程序时屏幕必须刷新.

我是否需要覆盖后退按钮方法?

if(keyCode == KeyEvent.KEYCODE_BACK)
{

    }
Run Code Online (Sandbox Code Playgroud)

android back-button oncreate

2
推荐指数
1
解决办法
4839
查看次数

onCreate中的新处理程序()

我正在我的Activity的onCreate()方法中为UI线程实例化我的Handler.(为了避免内存泄漏风险,Handler不是内部类,它是一个普通的类.)

由于一个Handler对应一个Thread,但是一个Thread可以拥有更多的处理程序(据我所知),每次调用onCreate()都会实例化一个新的Handler实例.因此,如果我的活动再次被重新创建(在onDestroy之后,但在此期间没有任何进程终止),onCreate()将添加另一个Handler而不删除旧的.(在Android源代码中,Handler只询问Thread的Looper并获取对其消息队列的引用.)

什么是最佳解决方案?我应该将一个Handler实例化为静态变量,然后在onCreate()中,我可以检查它是否为null.如果它是非空的,那么就没有必要实例化一个新的,对吧?

(不用说,在onDestroy()中,我将Handler实例中的Activity引用设置为NULL,因此Handler没有泄漏Activity或任何相关的东西 - 我的处理程序的处理方法检查它是否为null,并在需要时丢弃消息但是我的问题是Handler仍然是为了线程保留的,原因在前面的段落中我详细说明了,所以onCreate调用越多,附加到UI线程的Handler实例越多.我的静态解决方案是否正确?这并不重要,那么Android如何检测与当前线程关联的处理程序应该是GC-d?)

multithreading android handler oncreate

2
推荐指数
1
解决办法
1946
查看次数

如何知道表单是否已创建?

我想找到一种方法来知道表单是在运行时创建的(或销毁的).这适用于Delphi或fpc.非常感谢

PS:有没有办法检索所有对象的信息?

delphi runtime lazarus oncreate

2
推荐指数
1
解决办法
587
查看次数

当我返回我的Activity onCreate而不是onActivityResult?

我有一个Activity,它会为结果打开一个新的Activity:

Intent i = new Intent(ActDocument.this, ActCustomers.class);
startActivityForResult(i, ActDocument.DIALOG_CUSTOMER);
Run Code Online (Sandbox Code Playgroud)

当我按下子Activity并返回到父Activity时onActivityResult,在所有设备中正确调用了Activity ,但是我已经设置了一个onCreate被调用的设备而不是onActivityResult.

此设备是三星Galaxy Tab-P5100 Android 4.0.3.奇怪的是,我已经在三星Galaxy Tab-P5100 Android 4.0.3的其他设备上测试了我的应用程序,它没关系,但我只有这个设备有问题.

为什么?我怎么解决这个问题?

更新

我注意到onDestroy()在此设备上打开子Activity后调用了父Activity.

android back oncreate start-activity

1
推荐指数
1
解决办法
3943
查看次数

onCreate方法出错(FragmentActivity)

请帮忙!当我试图写onCreate方法时.

此行有多个标记

  • MainActivityParent类型中的onCreate方法只能设置public/protected/private之一

    • 方法断点:MainActivityParent [entry] - onCreate(Bundle)

    • 覆盖android.support.v4.app.FragmentActivity.onCreate

这里:

 package com.example.seledkarelease1;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.concurrent.ExecutionException;

import org.apache.http.util.LangUtils;

import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.DialogFragment;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks;
import com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.GoogleMap.OnMyLocationButtonClickListener;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Polyline;
import com.google.android.gms.maps.model.PolylineOptions;

public class MainActivityParent …
Run Code Online (Sandbox Code Playgroud)

java android oncreate android-fragmentactivity

1
推荐指数
1
解决办法
2946
查看次数