Android中的多个按钮和onClick

时间:2014-03-05 18:48:37

标签: android webview onclicklistener

所以,我有一个Android应用程序作为项目的一部分。分配是使用4个按钮创建一个应用程序,这将导致3个不同的活动,第4个按钮将用作退出功能。 我有退出功能,并尝试使第一个按钮工作,但它一直崩溃。

此按钮应指向一个原始Web浏览器的活动,其中包含url的edittext,go按钮和用于显示页面的webview。然而,我甚至无法到达那里。

当我点击要转到此活动的按钮时,我收到应用已停止的错误。

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_b);

    TextView naslov = (TextView) findViewById(R.id.naslovActivity);
    SharedPreferences sharedPreferences = getSharedPreferences("Podaci", 0);
    naslov.setText(sharedPreferences.getString("IME_PREZIME", "N/A"));

    Button exit = (Button) findViewById(R.id.exitBtn);
    Button web = (Button) findViewById(R.id.webBtn);

    web.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Log.i("INFOR", "Before intent");
            Intent myIntent = new Intent(getApplicationContext(), WebActivity.class);
            Log.i("INFOR", "Middle");
            startActivity(myIntent);
            Log.i("INFOR", "After intent");
        }
    });
    exit.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent myIntent = new Intent(getApplicationContext(), MyActivity.class);
            myIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            myIntent.putExtra("EXIT", true);
            startActivity(myIntent);
        }
    });
    }

所以我把那些日志放在那里,看看代码到底有多远。它记录第一个和第二个,但从不记录第三个,因此startActivity(myIntent)似乎存在问题。

有什么想法吗?退出功能是否会干扰它?我还有两个按钮和活动要做,但我害怕开始,因为我甚至无法让这个工作。

2 个答案:

答案 0 :(得分:0)

更改以下内容,

Intent myIntent = new Intent(getApplicationContext(), WebActivity.class);

Intent myIntent = new Intent(YourActivityName.this, WebActivity.class);

或者甚至以codeMagic建议的方式查看view.getContext()。

另外还有一件事是尝试实现OnClickListener并且也一次调用onClick,

exit.setOnClickListener(this);

然后在onClick上检查哪个按钮调用它,

 @override
 onClick(View v){
    switch(c.getId()){
       case R.id.exitBtn:
        //your code
        break;
    }
 }

答案 1 :(得分:0)

如果WebActivity.class中的代码一切正常,您可能忘记将活动放在Android清单中,如下所示:

<activity android:name=".WebActivity" android:label="@string/app_name"></activity>

建议:不要使用balkan语言作为变量名,当你以软件开发人员的身份获得工作时,你可能会用英语命名变量,注释等,甚至可以在stackoverflow上发帖请求帮助: )尽快开始更好的练习。