0

クリックすると別のレイアウト/アクティビティに切り替わるボタンを作成しようとしています。誰でも手伝ってもらえますか?

package com.example.darsh.popup;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.WindowManager;
import android.widget.PopupWindow;
import android.widget.Toast;

public class Main extends Activity {

private LayoutInflater inflater;
private PopupWindow pw;
private View popupView;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
popupView = inflater.inflate(R.layout.menu_layout, null, false);
}

public void showPopup(View view) {
pw = new PopupWindow(getApplicationContext());
pw.setTouchable(true);
pw.setFocusable(true);
pw.setOutsideTouchable(true);
pw.setTouchInterceptor(new OnTouchListener() {
    public boolean onTouch(View v, MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_OUTSIDE) {
            pw.dismiss();

            return true;
        }

        return false;
    }
});

pw.setWidth(WindowManager.LayoutParams.WRAP_CONTENT);
pw.setHeight(WindowManager.LayoutParams.WRAP_CONTENT);
pw.setOutsideTouchable(false);
pw.setContentView(popupView);
pw.showAsDropDown(view, 0, 0);

}

public void clickOne(View view) {
pw.dismiss();
Toast.makeText(getBaseContext(), "Link New User", Toast.LENGTH_SHORT)
        .show();

}

public void clickTwo(View view) {

pw.dismiss();
Toast.makeText(getBaseContext(), "Edit Core Device 1", Toast.LENGTH_SHORT)
        .show();
}

public void clickThree(View view) {
pw.dismiss();
Toast.makeText(getBaseContext(), "Delete Core Device 1", Toast.LENGTH_SHORT)
        .show();
} 

ユーザーが「Link New User」「Edit Core Device 1」、または「Delete Core Device 1」をLinkMenu.Java/linkmenu.xmlクリックした後に切り替えるだけで 済みますが、そのために現在のソースコードに何を追加すればよいかわかりません。

4

3 に答える 3

2

Intent を使用して、別のアクティビティに切り替えます。

Intent intent = new Intent(Context, YourClass.class);
startActivity(intent);
于 2013-03-01T18:04:12.093 に答える
1

activity_main.xml:

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="sendMessage"
    android:text="@string/button_send" />

MainActivity.java

/** Called when the user clicks the Send button */
public void sendMessage(View view) {
    Intent intent = new Intent(this, DisplayMessageActivity.class);
    EditText editText = (EditText) findViewById(R.id.edit_message);
    String message = editText.getText().toString()
    intent.putExtra(EXTRA_MESSAGE, message);
    startActivity(intent);
}

ボタンがクリックされた後、sendMessage(View view)関数が呼び出されます。この関数は、テキスト フィールドの値を取得し、それを共有メモリに「マップ」します。関数の最後の行は、新しいアクティビティを作成して開始し、古いアクティビティは表示されなくなります。

于 2013-03-01T18:20:01.600 に答える
0

こんにちは、次のコードを試してください:

    Button button = (Button) findViewById(R.id.button1);
    button.setOnClickListener(){    
    public void onCLick(View v){
        Intent i =new Intent(YouCurrentClass.this, NameOfsecondactivity.class);
        startActivity(i);
      }
    };
于 2013-03-01T18:11:28.820 に答える