java - 单击按钮后无法切换到另一个 Activity

标签 java android xml eclipse android-intent

基本上,我将在其中添加 14 个按钮,所有这些按钮都将进入相同的 Activity ,只需在第二个 Activity 中更改微调器即可。所以我不想为每个按钮创建一个 Intent 对象来导致相同的 Activity (因为它会减慢应用程序的速度)。所以我将标签分配给按钮以获取 id 并尝试将该 id 传递给新 Activity 。但它不起作用。 AVD 仅显示第一个 Activity ,点击按钮后没有任何反应。

我的主屏幕(Test1) Activity :

public class Test1Activity extends Activity {


public static final String pass="com.sanjay.test1._clicked";
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
Button button1=(Button) findViewById(R.id.button1);
Button button2=(Button) findViewById(R.id.button2);

button1.setId(1);
button2.setId(2);

button1.setOnClickListener( new MyOnClickListener());
button2.setOnClickListener( new MyOnClickListener()); 

 }
private class MyOnClickListener implements OnClickListener{
@Override
public void onClick(View v)
{
int id=v.getId();
Intent i=new Intent(Test1Activity.this,Sanjay.class); 
i.putExtra(pass, id);

}

}
}

主.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Length" />

<Button
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Weight" />

</LinearLayout>

第二堂课(Sanjay) Activity :

public class Sanjay extends Activity {

/** Called when the activity is first created. */
int a;
TextView text;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.second);

    text=(TextView) findViewById(R.id.text);
    a=getIntent().getExtras().getInt(Test1Activity.pass);

    text.setText(" "+a);
    // TODO Auto-generated method stub
}

}

第二个.xml:

<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/linearLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

</LinearLayout>

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.sanjay.rotation"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk android:minSdkVersion="15" />

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <activity
        android:name=".RotationActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

</manifest>

最佳答案

您需要在 onClick 函数中添加 startActivity(i) 否则 Activity 将永远不会启动。您也应该将它添加到您的 Android list 中。

像这样:

private class MyOnClickListener implements OnClickListener{
@Override
public void onClick(View v)
{
int id=v.getId();
Intent i=new Intent(Test1Activity.this,Sanjay.class); 
i.putExtra(pass, id);
startActivity(i);

}

}

还有你的 list :

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.sanjay.rotation"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk android:minSdkVersion="15" />

<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
    android:name=".RotationActivity"
    android:label="@string/app_name" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
<activity
    android:name=".Sanjay"
    android:label="Sanjay Label">
</activity>
</application>

</manifest>

关于java - 单击按钮后无法切换到另一个 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9668181/

相关文章:

java - 如何将BST的所有数据存储到一个数组列表中?

Android - 覆盖 android 布局文件中的样式

java - 使用 JTable 单元格编辑器

java - Android onProgressUpdate只能调用静态方法?

android - 无法理解此堆栈跟踪(parse.com)

c# - 通过 API 提要在 C# 中提取 XML 元素

c++ - 在 C++ 中创建和流式传输大型 XML 文档

javascript - 使用window.open、document.open和document.write来显示XML(XML渲染消失了)

java - 扫描仪导入显然有问题

java - 线性布局环绕 TextView