【问题标题】:Android Studio - Button opens new activityAndroid Studio - 按钮打开新活动
【发布时间】:2015-03-07 09:05:40
【问题描述】:

我想创建一个 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。有什么想法可以解决这个问题吗?

【问题讨论】:

  • 你已经在 xml android:id="@+id/button" 中设置了按钮 ID,所以像这样替换你的 findViewById(R.id.button)。
  • 现在可以使用了,谢谢!

标签: android android-studio


【解决方案1】:

你是&lt;Button&gt;andorid:id属性应该是

<Button
    ...
    android:id="@+id/open_activity_button"

这就是为什么没有生成R.id.open_activity_button 并且编译器抱怨无法找到它的原因。或者,您可以将 onCreate() 代码更改为

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

【讨论】:

    【解决方案2】:

    在您的代码中进行更改

    1. 您的第一个和第二个 Activity 未扩展 Activity 类(而不是 ActionBarActivity)
    2. 同时覆盖第二个活动的 OnCreate() 活动。
    3. 还通过获取 ID 在第一个活动中包含按钮。 ex.在第一个Activity中,私有Button btnname;(在Activity中) 现在在 onCreate(),btnname=(Button)findViewById(R.id.buttonid); 然后单击 btnname 提供代码以进行第二个活动。

    举个例子 Moving from one activity to another Activity in Android

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-03
      • 2017-12-17
      • 2015-04-26
      • 2019-03-07
      • 1970-01-01
      • 1970-01-01
      • 2017-12-19
      • 1970-01-01
      相关资源
      最近更新 更多