I have button in my Tab1.java, by clicking the button, it will call another class say Custom.java, But i am facing error:
"Intent cannot be resolved to a type"
I searched a lot but did not find any helpful post regarding this. Please Help me !
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;
}
}
Custom.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 ***************************/
Hye there, Kindly try this way.
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);
}
});
There's some quick tips that may solve the problem:
1) Did you make sure that yourt Custom activity is registered in the android manifest?
2) Don't call the startActivity
directly in your fragment, use an interface to communicate with the activity that is holding your fragment and do the startActivity
there, this way is more clean.
3) Don't use class names like Custom
or Tab1
use CustomActivity
and TabFragment
, follow the android code style guidelines.
Communication Fragment-Activity
Keep in mind that if some day, your boss or someone tells you "Well, now we're going to do a version for Tablet devices" this code is going to need a lot of changes, that's why you've to communicate your fragments with your activities, and perform the logic there.
Tell me if you have any problem, or if the issue doesn't get resolved.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.