2016-05-25 112 views
0

我通過意向Android Studio中無法解析法「findViewById」

package com.smartcodeone.newapp1; 

import android.content.Intent; 
import android.os.Bundle; 
import android.support.v7.app.ActionBarActivity; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.Button; 

public class MainActivity extends ActionBarActivity { 

    public static final String STRING_VAR = "com.smartcodeone.newapp1.HELLO_WORLD"; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     Button btnMsg = (Button) findViewById(R.id.btnMsg); 


     btnMsg.setOnClickListener(new View.OnClickListener(){ 

      //when user click's this function will be called 
      public void onClick(View v){ 
       Intent intentvar = new Intent(getApplicationContext(),Main2Activity.class); 
       intentvar.putExtra(STRING_VAR,"Hello World"); //this is used to pass data to next intent 
       startActivity(intentvar); 
      } 
     }); 


    } 

    private int findViewId(int btnMsg) { 
      return 0; 

    } 


    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.menu_main, menu); 
     return true; 



    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 

     //noinspection SimplifiableIfStatement 
     if (id == R.id.action_settings) { 
      return true; 
     } 

     return super.onOptionsItemSelected(item); 
    } 

    @Override 
    public android.support.v4.app.FragmentManager getSupportFragmentManager() { 
     return null; 
    } 
} 
+0

請更全面地描述問題,只發布代碼的相關部分。 – sschale

+0

你想使用你自己的'findViewById'嗎?或者它只是你做的一個嘗試? – Amirag

回答

-1

連接兩個活動。假設你的意思是原來的findViewById(int),而不是你寫那裏的功能:
嘗試,而不是從活動延伸。
這意味着您將不得不刪除您沒有使用的無用功能並導入android.app.Activity

另外,不要使用android.support.v7.*包。
從我的小經驗來看,它只會導致麻煩,除非你知道你在做什麼。

+1

我不明白你的建議如何解決問題。 ActionBarActivity也有findViewById()。 – Egor

+0

我不明白這些建議如何解決問題。此外,支持v7版本可以創建更安全的Android版本體驗。 – cyroxis

2

它可能與Android Studio有關。嘗試清理你的項目,然後重建。如果這不起作用去文件 - >無效緩存/重啓...

我有時也得到這些問題。讓我知道這是否有效。我試過你的代碼,它工作正常。

0

這個問題似乎是你定義了一個名爲方法:findViewById(int button)總是返回0。

使用活動方法,而不是你自己的:

this.findViewById(int resourceId)

祝你好運!

0

看來你正在實現你自己的findviewbyid()。我不知道你是否打算這麼做。

嘗試刪除

private int findviewbyid(int btnMsg) { 
} 

的ActionBarActivity的findviewbyid應該從你的佈局文件解決您的按鈕。

相關問題