-1

我在 ImageButton for Android 上搜索了很多参考资料。并且完全一样,但它似乎没有工作。奇怪的是,它只在我使用“按钮”时起作用。我错过了一些重要的部分吗?

谁能帮我解决我的问题?我在下面列出了我的代码。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Button connectBtn = (Button)this.findViewById(R.id.connectBtn); //<<<=== THIS WORKS
    ImageButton connectBtn = (ImageButton) this.findViewById(R.id.connectBtn); // <<<=== THIS NOT
    ImageButton getPy = (ImageButton) findViewById(R.id.getFilePy); // <<<=== THIS NOT
    ImageButton runPy = (ImageButton) findViewById(R.id.runPy); // <<<=== THIS NOT

    connectBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mySetConfig();
        }
    });

    getPy.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            showFileChooser();
        }
    });
    runPy.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            pythonButton();
        }
    });
}

XML:

<ImageButton
    android:id="@+id/connectBtn"
    android:layout_width="match_parent"
    android:layout_height="90dp"
    android:background="@drawable/button_1" />

<TextView
    android:layout_width="match_parent"
    android:layout_height="5dp" />

<ImageButton
    android:id="@+id/getPy"
    android:layout_width="match_parent"
    android:layout_height="90dp"
    android:background="@drawable/button_2" />

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

<ImageButton
    android:id="@+id/runPy"
    android:layout_width="match_parent"
    android:layout_height="90dp"
    android:background="@drawable/button_3" />

 <FrameLayout
    android:id="@+id/FrameLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >
</FrameLayout>

<EditText
    android:id="@+id/app_status"
    android:layout_width="match_parent"
    android:layout_height="250dp"
    android:ems="10"
    android:singleLine="false" >

    <requestFocus />
</EditText>

</LinearLayout>

预先感谢您的好心。

4

1 回答 1

0

将 click Listener 放到 ImageButton 的正确方法:

    ImageButton connectBtn = (ImageButton) findViewById(R.id.connectBtn);

    connectBtn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
                      mySetConfig();

        }

    });

这是给你的好东西。请从这里删除“这个”字:

ImageButton connectBtn = (ImageButton) this .findViewById(R.id.connectBtn); <<<=== 这不是

于 2013-07-16T13:14:41.660 回答