我的 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/