Articles of 构造函数

SQLiteOpenHelper类用上下文参数做什么?

我正在扩展SQLiteOpenHelper类。 我的构造函数是 public MyDatabaseHelper(Context context) { super( context, // ??? "MyDatabase.db", // Database name null, // Cursor factory 1 // database version ); } SQLiteOpenHelper构造函数是如何处理上下文信息的? 对于我的应用程序,无论程序状态(上下文)如何,构造函数的行为都是一样的。 我可以在没有任何未来问题的情况下将null传递给上下文吗?

为什么Activity的构造函数中的getApplicationContext()会引发空指针exception?

经过一段时间的错误狩猎后,事实certificate: public class MainActivity extends BaseActivity { // BaseActivity extends Activity public MainActivity() { super(); getApplicationContext(); // NPE here } } 为什么? 这在哪里logging? 升级Froyo

Android Studio中的“android.database.sqlite.SQLitepenhelper”中没有可用的默认构造函数

尝试扩展类与SQLiteOpenHelper,但是这个错误显示:“没有默认构造函数在android.database.sqlite.SQLitepenhelper”与其他“无法parsing符号类别,注意,…” class DbHelper extends SQLiteOpenHelper { @Override public void onCreate(SQLiteDatabase db) { db.execSQL(Category.getSql()); db.execSQL(Note.getSql()); db.execSQL(Attachment.getSql()); db.execSQL(CheckItem.getSql()); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + Category.TABLE_NAME); db.execSQL("DROP TABLE IF EXISTS " + Note.TABLE_NAME); db.execSQL("DROP TABLE IF EXISTS " + Attachment.TABLE_NAME); db.execSQL("DROP TABLE IF EXISTS " + CheckItem.TABLE_NAME); […]

Android:我应该添加一个空的构造函数到ViewPager中使用的片段

我正在做一个布局,类似于Google Play的。 我正在使用需要片段的ViewPager。 我现在有点困惑,因为有些网站说,片段需要一个空的构造函数,但developer.android.com上的例子不包含构造函数。 有代码就像这样: public static class DemoObjectFragment extends Fragment { public static final String ARG_OBJECT = "object"; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // The last two arguments ensure LayoutParams are inflated // properly. View rootView = inflater.inflate( R.layout.fragment_collection_object, container, false); Bundle args = getArguments(); ((TextView) rootView.findViewById(android.R.id.text1)).setText( Integer.toString(args.getInt(ARG_OBJECT))); return […]

为什么我不能传递参数给Android Activity构造函数

我知道我不能将parameter passing给Android中的Activity构造函数,但我想知道为什么。 我试图做的是: CalorieSelectorActivity csa = new CalorieSelectorActivity(userName); Intent i = new Intent(thisContext, csa.getClass()); startActivity(i); 我已经定义了这个类如下: public class CalorieSelectorActivity extends Activity { public CalorieSelectorActivity(String name) { super(); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.calorieselector); } } 当我从构造函数中删除参数时,它完美的工作。 我最终做了使用intent.putExtra,但是我很好奇,知道为什么不能通过传递参数给构造函数呢? LogCat : 02-04 06:46:52.257: W/dalvikvm(800): threadid=1: thread exiting with uncaught exception (group=0x4001d800) 02-04 06:46:52.277: E/AndroidRuntime(800): […]

这种types有一个构造函数,必须在这里初始化 – Kotlin

我刚开始使用Kotlin试验Android应用程序。 我只是想inheritance像这样的应用程序类: class SomeApp : Application { } 但是编译器提出了这样的警告: 并build议将其更改为: class SomeApp : Application() { override fun onCreate() { super.onCreate() } } 我阅读了文档中的主要和次要构造函数 。 所以,如果超类有一个主要的构造函数,那么是否有必要写在这里? 像Application类有它自己的构造函数 public Application() { super(null); } 那么有必要有派生的主要构造函数? 或者我不能像Java那样做一些事情: class SomeApp : Application { constructor SomeApp(){ super(); } } 或者这个错误提示了别的东西? 任何人都可以详细解释我吗? 我对这门语言很陌生,这对我来说很奇怪。 编辑:在Java我可以做到以下几点: class SomeApp extends Application{ } 它有隐含的构造函数,所以我不必写: class SomeApp […]

我用什么CursorAdapter?

CursorAdapter有3个构造函数。 让看看指南和参考。 1)CursorAdapter(上下文上下文,Cursor c) 这个构造函数已经被弃用了。 这个选项是不鼓励的,因为它会导致在应用程序的UI线程上执行游标查询,因此可能导致响应不佳,甚至导致应用程序不响应错误。 作为替代,使用带有CursorLoader的LoaderManager。 2)CursorAdapter(上下文上下文,Cursor c,boolean autoRequery) 允许控制自动重新查询的构造函数。 build议你不要使用这个 ,而应该使用 CursorAdapter(Context,Cursor,int)。 3)CursorAdapter(上下文上下文,Cursor c,int标志) 推荐的构造函数。 标志用于确定适配器行为的标志; 可以是FLAG_AUTO_REQUERY和FLAG_REGISTER_CONTENT_OBSERVER的任意组合。 FLAG_AUTO_REQUERY 此常量已被弃用 。 这个选项是不鼓励的,因为它会导致在应用程序的UI线程上执行游标查询,因此可能导致响应不佳,甚至导致应用程序不响应错误。 作为替代,使用带有CursorLoader的LoaderManager。 FLAG_REGISTER_CONTENT_OBSERVER。 使用带有CursorLoader的CursorAdapter时,不需要此标志。 CursorAdapter(上下文上下文,Cursor c,int标志)是推荐的构造函数,但可能的标志是2,一个是不推荐的,另一个在使用CursorLoader时不需要CursorAdapter。 如果我用一个CursorLoader的CursorAdapter我必须使用这个构造函数并将零作为标志? 在这种情况下,构造函数是否与#1相同?

Android:为什么SoundPool的构造函数不推荐使用?

这是否意味着我们不能再使用它了? 如果min API设置在21以下,我们应该使用什么? 此外,可以忽略警告,因为使用它构build的旧应用程序在新的操作系统上工作?

为什么使用newInstance来代替DialogFragment的构造函数?

查看DialogFragment的文档 ,可以看到静态的newInstance方法初始化一个新的警报对话框片段。 我的问题是,为什么不使用构造函数来这样做,就像这样: public MyAlertDialogFragment(int title) { Bundle args = new Bundle(); args.putInt("title", title); setArguments(args); } 这不完全一样吗?或者它有什么不同吗? 什么是最好的方法, 为什么 ?

阻止Proguard删除空的构造函数的片段

你知道,Fragment的所有子类都必须包含一个公共的空构造函数,但是当使用proguard时,这些构造函数将被移除。 我已经指定了下面的命令,但空的构造函数仍然被删除。 任何人都可以帮助我保持Fragment的空构造函数? 谢谢。 -keepclassmembers public class * extends android.support.v4.app.Fragment { public <init>(***); #public <init>(); //already tried this } -keepclassmembers public class * extends com.vng.zingtv.fragment.MyBaseFragment { public <init>(***); #public <init>(); //already tried this }