2013-12-08 202 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