android意图没有激活

时间:2013-04-12 14:24:40

标签: java android xml android-intent

当我点击按钮时,我的意图是转到另一个Android页面。

我的java代码

public class CharSheets extends Activity implements OnClickListener{

    Button Descrip, Atributes, Weapons, Skills, ACItems, Gear,
        Feats, SpecialAbilities, Spells;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.charsheets);
        setids();
    }

    private void setids() {
        // TODO Auto-generated method stub
        Descrip = (Button)findViewById(R.id.bCharDescrip);
    }

    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        switch(arg0.getId()) {
        case R.id.bCharDescrip:
            Intent i = new Intent(CharSheets.this, CharDescrip.class);
            startActivity(i);
            break;
        case R.id.bCharAtributes:
            Intent i1 = new Intent(CharSheets.this, CharAtributes.class);
            startActivity(i1);
            break;
        }
    }
}

XML mainfest

<activity
    android:name=".CharAtributes"
    android:label="@string/app_name" >
    <intent-filter>
        <action android:name="android.intent.action.CHARSATRIBUTES" />

        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>
<activity
    android:name=".CharDescrip"
    android:label="@string/app_name" >
    <intent-filter>
        <action android:name="android.intent.action.CHARDESCRIP" />

        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

我不确定是什么导致了这个问题,但我尝试了其他解决方案,但都没有。我以前用过的方式我以前使用它并且工作得很好。

3 个答案:

答案 0 :(得分:3)

您尚未将OnClickListener应用于按钮。

private void setids() {
    // TODO Auto-generated method stub
    Descrip = (Button)findViewById(R.id.bCharDescrip);
    Descrip.setOnClickListener(this); // <--- This line is required.
}

作为旁注,通常的做法是用小写字母命名变量,例如:记述

答案 1 :(得分:3)

您尚未为onClickListener()

设置Button
private void setids() {
    // TODO Auto-generated method stub
    Descrip = (Button)findViewById(R.id.bCharDescrip);
    Descrip.setOnClickListener(this);   // add this line
}

现在在此处添加您的其他Buttons,并以相同的方式使用setOnClickListener()

答案 2 :(得分:2)

您应该在Button上设置OnClickListener。 。

private void setids() {
        // TODO Auto-generated method stub
        Descrip = (Button)findViewById(R.id.bCharDescrip);
        Descrip.setOnClickListener(this);
    }