对于对象类型,未定义onCreate(bundle)方法

时间:2013-04-18 22:52:34

标签: android super

嗨,我是android dev的新手,下面的代码给出了错误 1)对于对象类型,未定义onCreate(bundle)方法  2)DisplayMessageActivity类型的onCreate(bundle)方法必须覆盖或实现超类型方法 我正在使用super.onCreate,但它给了我这个错误?

    public class DisplayMessageActivity {

        @SuppressLint("NewApi")
        @Override
        protected void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);

                // Get the message from the intent
                Intent intent = getIntent();
                String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);

                        // Create the text view
                TextView textView = new TextView(null);
                textView.setTextSize(40);
                textView.setText(message);

                // Set the text view as the activity layout
                setContentView(textView);

            // Make sure we're running on Honeycomb or higher to use ActionBar APIs
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
                // Show the Up button in the action bar.
                ((Object) getActionBar()).setDisplayHomeAsUpEnabled(true);
            }
    }
        private void setContentView(TextView textView) {
            // TODO Auto-generated method stub

        }
        private Intent getIntent() {
            // TODO Auto-generated method stub
            return null;
        }
        private Object getActionBar() {
            // TODO Auto-generated method stub
            return null;
        }
        public boolean onOptionsItemSelected(MenuItem item) {
            switch (item.getItemId()) {
            case android.R.id.home:
                NavUtils.navigateUpFromSameTask(this);
                return true;
            }
            return super.onOptionsItemSelected(item);
        }

    }

3 个答案:

答案 0 :(得分:4)

您忘记扩展Activity类。

public class DisplayMessageActivity extends Activity

如果要创建Activity,则必须将Activity扩展为超类。要详细了解活动的基本知识,请参阅doc此处

答案 1 :(得分:0)

@ StinePike的答案修复了你的问题。但是你还需要阅读Intent s。这些基本上只是一种发送消息的方式。这是一个隐含的动作,因为它不会启动某些东西但会告诉我们该做什么以及如何处理某些数据。我这样说是因为我相信你被误导了你有一个叫getIntent()的函数。这不是您班级中的一项功能,但如果ActivityIntent启动,则这就是您接收数据的方式。

假设你开始Activity喜欢:

Intent intent = new Intent(MyActivity.this, NextActivity.class);  // MyActivity is the Activity you are currently in and NextActivity is the Activity you are starting
intent.putExtra("people", "Fred");  // This isn't necessary but a way to pass data. I put "Fred" but this could be a String variable or something else
startActivity(intent);

NextActivity你可能会这样做:

@Override
public void onCreate(Bundle bundle)
{
    Intent recIntent = getIntent();  // this gets the intent information sent from MyActivity
    String data = recIntent.getStringExtra("people");  // data now equals  the String Fred
}

无需创建名为getIntent()的函数,它是一个本机函数。因此,当您使用getIntent()时,如果null未使用Activity启动,则最好检查Intent。也许它是发射器Activity

答案 2 :(得分:0)

更改: protected void onCreate(Bundle savedInstanceState)

收件人: public void onCreate(Bundle savedInstanceState)

我正在研究相同的教程。我直接复制了教程中的代码并运行了应用程序(工作正常)。所以开始检查差异,这是我找到的唯一一个。

希望它有所帮助!

快乐编码!!