Android Studio - 按钮可打开新活动

时间:2015-03-07 09:05:40

标签: android android-studio

我想创建一个onclick监听器,这样当我触摸主页上的开始按钮时,它将引导我免责声明。我已经阅读了很多答案,但我仍然遇到了一些问题。

我在清单中声明了我的新活动:

 <activity
            android:name=".Disclaimer"
            android:label="@string/title_activity_disclaimer" >
        </activity>

这是我的开始按钮在页面中的样子:

<Button
    android:layout_width="100dp"
    android:layout_height="50dp"
    android:text="START"
    android:id="@+id/button"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true" />

这是我的主要活动:

public class Home extends ActionBarActivity {

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

        Button btn = (Button)findViewById(R.id.open_activity_button);

        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(Home.this, Disclaimer.class));
            }
        });
    }


    @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_home, 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);
    }
}

其中一个问题是它无法解析符号open_activity_button。我有什么想法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

<Button>的{​​{1}}属性应为

andorid:id

这就是为什么<Button ... android:id="@+id/open_activity_button" 没有生成而且编译器抱怨无法找到它的原因。或者,您可以将R.id.open_activity_button代码更改为

onCreate()

答案 1 :(得分:0)

在您的代码中进行更改

  1. 你的第一个&amp;第二个活动不是扩展活动类(而不是ActionBarActivity)
  2. 还覆盖第二个活动的OnCreate()活动。
  3. 还可以通过获取ID在第一个活动中包含该按钮。 ex。在第一个Activity中,私有Button btnname;(在活动中) 现在在onCreate(),btnname=(Button)findViewById(R.id.buttonid); 然后点击btnname给代码移动第二个活动。
  4. 请参阅此示例 Moving from one activity to another Activity in Android