2013-12-08 201 views
0

我對Java和android應用程序很新。 我想在用戶點擊一個按鈕時打開一個屏幕。該按鈕被稱爲「公司」從Android中的按鈕開始屏幕

我有一個MainActivity.java和Company.java

MainActivity的樣子:

public class MainActivity extends Activity { 
public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE"; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    //getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    // If your minSdkVersion is 11 or higher, instead use: 
    // getActionBar().setDisplayHomeAsUpEnabled(true); 
} 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu items for use in the action bar 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.main_activity_actions, menu); 
    return super.onCreateOptionsMenu(menu); 
} 
/** Called when the user clicks the Company button */ 
public void onClick(View view) { 
    // Do something in response to button 
    Intent intent = new Intent(this, TheCompany.class); 
    startActivity(intent); 
} 
} 

但沒有任何反應上的按鈕公司用戶點擊時。 我有一個公司的Java文件和一個公司的XML文件,但他們沒有被調用。我懷疑這是他們從這裏被叫來的方式。

真的很感謝一些幫助。另外讓我知道是否需要發佈其他一些代碼,比如activity_main.xml。 謝謝!

+0

貴按鈕有'安卓onClick'屬性設置? –

+0

可能不是,我會在哪裏以及如何做到這一點? – user3079872

+0

在你的xml佈局文件中,對於代碼所指的按鈕 –

回答

0

如果你想通過一個button打開一個新activity用自己java.class,只需更換此:

public class MainActivity extends Activity { 
public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE"; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 

Button btn = (Button)findViewById(R.id.Company); 
btn.setOnClickListner(new View.OnClickListner(){ 

@Override 
public void onClick(View v){ 
Intent activityChangeIntent = new Intent(MainActivity.this,TheCompany.class) 
MainActivity.this.starActivity(activityChangeIntent); 
    } 
    }); 
} 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
// Inflate the menu items for use in the action bar 
MenuInflater inflater = getMenuInflater(); 
inflater.inflate(R.menu.main_activity_actions, menu); 
return super.onCreateOptionsMenu(menu); 
} 
+0

我已經在下面的代碼行中複製了你的代碼和它的錯誤:btn.setOnClickListner(new View.OnClickListner()和錯誤消息:View.OnClickListner不能被解析爲一個類型,它也包含錯誤:Button btn =( Button)findViewById(R.id.TheCompany)表示TheCompany無法解析或不是字段 – user3079872

+0

你可以發佈你的'file.xml'嗎?讓我看看我會解決你的問題。 – Pier

+0

Pier,我整理了這個。現在都在工作!非常感謝 – user3079872

0

onclick()方法永遠不會被調用! 你忘記設置在你的佈局XML文件或設置OnClickListener編程代碼(見下文):

public class MainActivity extends Activity { 
public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE"; 

    @Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    View button = findViewById(R.id.myButtonId); 
    button.setOnClickListener(new OnClickListener(){ 
     public void onClick (View v){ 
     startIntent(); 
     } 

    }); 
    //getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    // If your minSdkVersion is 11 or higher, instead use: 
    // getActionBar().setDisplayHomeAsUpEnabled(true); 
} 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu items for use in the action bar 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.main_activity_actions, menu); 
    return super.onCreateOptionsMenu(menu); 
} 
/** Called when the user clicks the Company button */ 
private void startIntent() { 
    // Do something in response to button 
    Intent intent = new Intent(this, TheCompany.class); 
    startActivity(intent); 
} 
} 
0

你似乎說你有Company.java,但在你的意圖,你正在嘗試訪問TheCompany.class。文件名需要與Company.java中的公共類匹配。因此,您需要使用Company類的Company.java文件或使用TheCompany類的TheCompany.java文件。

我懷疑這是設置正確的,否則如果你已經在你的XML文件中添加你會得到錯誤。

這是值得發佈的XML按鈕,sockeqwe最有可能是正確的。

+0

我很抱歉,是的,我確實有一個TheCompany.Java – user3079872

+0

對不起,我不能評論其他人的答案,因爲沒有聲望。關於你對Pier的回答的回答:'btn.setOnClickListner(new View.OnClickListner()' - 這行的兩個Listener字都缺少第一個e,只是一個錯字。'(Button)findViewById(R。 id.TheCompany)'是因爲XML文件中的按鈕的id不是TheCompany。確保你的按鈕的XML中有一行代表'android:id =「@ + id/someButtonId」'並修改(Button)findViewById(R.id.someButtonId)'。 – Barrex

+0

非常感謝Sorin。我現在得到以下錯誤:類型View中的方法setOnClickListener(View.OnClickListener)不適用於(新的DialogInterface.OnClickListener(){}) – user3079872