android - 未从 onActivityCreated 中的 Intent 调用 Activity

标签 android android-fragments android-intent android-fragmentactivity

我的 Tab1.java 中有一个按钮,通过单击该按钮,它会调用另一个类 Custom.java,但我遇到了错误:

“无法将 Intent 解析为类型”

我搜索了很多,但没有找到任何有用的帖子。 请帮助我!

Tab1.java

public class Tab1 extends Fragment
{
    ListView lv;
    int FIRST_OPTION = 1;
    int SECOND_OPTION = 2;

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onActivityCreated(savedInstanceState);
    Button b = (Button) getView().findViewById(R.id.button4);
    registerForContextMenu(b);

    Button bi = (Button) getView().findViewById(R.id.button5);
    registerForContextMenu(bi);

    Button setting = (Button) getView().findViewById(R.id.setting);
    setting.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            startActivity(new Intent(getActivity(), Custom.class));             
        }
    });

    b.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

        @Override
        public void onCreateContextMenu(ContextMenu menu, View v,
                ContextMenuInfo menuInfo) {
            // TODO Auto-generated method stub
            menu.add(0, FIRST_OPTION, 0, "Activate");

                }
    });
bi.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

        @Override
        public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
            // TODO Auto-generated method stub

            menu.add(0, SECOND_OPTION, 0, "Activate");
        }
    });

}

@Override
public boolean onContextItemSelected(MenuItem item) {

    int itemId = item.getItemId();
    if(itemId == FIRST_OPTION){
        //Normal_Mode nm = new Normal_Mode();
        //nm.activateNormal(getApplicationContext());
    Toast.makeText(this.getActivity(), "Normal Mode Activated", Toast.LENGTH_SHORT).show();

    return true;

    }
    else if(itemId == SECOND_OPTION){
        //Silent_Mode sm = new Silent_Mode();
        //sm.activateSilent(getApplicationContext());
        Toast.makeText(this.getActivity(), "Silent Mode Activated", Toast.LENGTH_SHORT).show();

        return true;            
    }
    return super.onContextItemSelected(item);
 }
    @Override
    public View onCreateView(LayoutInflater inflater,@Nullable ViewGroup container,
        @Nullable Bundle savedInstanceState) {
        View view =inflater.inflate(R.layout.profile,container,false);
        return view;
    }
}

自定义.java

public class Custom extends Activity{

    private SeekBar mediaVlmSeekBar = null;
    private AudioManager audioManager = null;
    private boolean mphoneisVib;
    Ringtone ringtone;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        this.setVolumeControlStream(AudioManager.STREAM_MUSIC);  
        setContentView(R.layout.custom_sett);
        initControls();

        audioManager= (AudioManager) getSystemService(AUDIO_SERVICE);

        setButtonClickListener();

        Button b = (Button) findViewById(R.id.button6);
        b.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                Intent inte = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
                inte.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, 
                        RingtoneManager.TYPE_RINGTONE);
                //String title= ringtone.getTitle(this);
            inte.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Sle");

                startActivityForResult(inte, 5);
            }           
        });     
    }

   /********************* Code For VIbration *******************************/

    private void setButtonClickListener() {
        // TODO Auto-generated method stub
        ToggleButton tb = (ToggleButton) findViewById(R.id.toggleButton1);
        tb.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                if(mphoneisVib){
                    audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
                mphoneisVib=false;
            Toast toast=    Toast.makeText(Custom.this, "Vibration Off !",
                    Toast.LENGTH_SHORT);
                toast.show();
                }
                else{

                    audioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);

                    mphoneisVib=true;

                    Toast toast=Toast.makeText(Custom.this, "Vibration On !",
                    Toast.LENGTH_SHORT);
                    toast.show();                   
                }                   
            }
        });
    }
    /********************          End        *************************/

    /******************** Code For Volume Seekbar *********************/
    private void initControls() {
        // TODO Auto-generated method stub

        audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); 
        mediaVlmSeekBar = (SeekBar) findViewById(R.id.seekBar1);
        mediaVlmSeekBar.setMax(audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC)); 
        //Set the progress with current Media Volume 
        mediaVlmSeekBar.setProgress(audioManager.getStreamVolume(AudioManager.STREAM_MUSIC));

        try { mediaVlmSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {    
            public void onStopTrackingTouch(SeekBar arg0) {         }

            @Override
            public void onProgressChanged(SeekBar seekBar, int progress,
                    boolean fromUser) {
                // TODO Auto-generated method stub

                audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, progress, 0);                   
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {                 
            } 
        });

        }
        catch (Exception e) 
        {e.printStackTrace(); } 
    }
             /***********************  End  ***************************/

最佳答案

你好,请尝试这种方式。

setting.setOnClickListener(new OnClickListener() {

 @Override
 public void onClick(View arg0) {
   /startActivity(new Intent(getActivity(), Custom.class));   
    Intent intent = new Intent((Tab1)getActivity(), Custom.class);
    (Tab1)getActivity().startActivity(intent);    

    }
});

关于android - 未从 onActivityCreated 中的 Intent 调用 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33188522/

相关文章:

java - 通过引用将 ArrayList 对象传递给另一个 Activity

android - Flutter Blue 设置通知

android - 在社交网站上上传应用程序内容

java - Android 8.0 Oreo 输入类型 numberPassword 不起作用 - 可见

java - 回收器 View 未显示在 fragment 中

android - 在 Fragment 中使用 PullToRefreshExpandableListView

安卓接口(interface)

java - Android - 将类 X 的实例从 Activity A 发送到 Activity B

android - 访问仪器测试资源

android - 将 native 操作栏转换为操作栏 Sherlock