انجمن سایت کلیدستان


رتبه موضوع:
  • 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
قرار دادن دو کلاس در یک تابع (کدهای دو Activity) (برنامه نویسی اندروید)

قرار دادن دو کلاس در یک تابع (کدهای دو Activity) (برنامه نویسی اندروید)

#1
سلام دوستان
من میخوام دستورات دو تابع را در یک کلاس قرار بدهم.
کلاس اول از نوع
public class sensor extends Activity implements SensorEventListene{}
کلاس دوم از نوع
public class MainActivity extends Activity implements MediaPlayerControl{}


دستورات را به صورت زیر در یک کلاس نوشتم  تنها دستوراتی اجرا میشوند که مربوط به اولین تعریف اکتیویتی است، یعنی(MainActivity) اما دستوراتی را که در حلقه یا  public class sensor نوشته شده اند اجرا نمیگردند. چرا؟
راه حل مناسبی سراغ دارید؟

کد پی‌اچ‌پی:
//--------------------- شروع دستورات اولین کلاس
public class MainActivity extends Activity implements MediaPlayerControl {
 
//-----------------------دستورات کلاس سنسور و دومین اکتیوتی
public class sensor extends Activity implements SensorEventListener {

        private 
TextView txt;
        private 
Button btn_sensor_next;
        private 
SensorManager sm;
        private 
Sensor sAcc;
        @
Override
        
protected void onCreate(Bundle savedInstanceState) {
            
super.onCreate(savedInstanceState);
            
setContentView(R.layout.sensor);
            
            
txt=(TextViewfindViewById(R.id.txt);
            
            
btn_sensor_next=(Button)findViewById(R.id.btn_sensor_next);
            
//
            
btn_sensor_next.setOnClickListener(new OnClickListener() {
                @
Override
                
public void onClick(View arg0) {
                    
MainActivity cd;
                }
            });
            
            
DisplayMetrics dm=new DisplayMetrics();
            
getWindowManager().getDefaultDisplay().getMetrics(dm);
            
            
sm=(SensorManagergetSystemService(Context.SENSOR_SERVICE);
            
sAcc=sm.getDefaultSensor(Sensor.TYPE_PROXIMITY);
            
            
Toast.makeText(getApplicationContext(), ""Toast.LENGTH_LONG).show();
            
        }

        @
Override
        
public void onAccuracyChanged(Sensor arg0int arg1) {
            
// TODO Auto-generated method stub
            
        
}

        private 
int top=10;
        private 
int left=10;
        @
Override
        
public void onSensorChanged(SensorEvent s) {
            
            
txt.setText(s.values[0]+"");
            
        }
        
        @
Override
        
protected void onResume() {
            
super.onResume();
            
            
sm.registerListener(thissAccSensorManager.SENSOR_DELAY_NORMAL);
            
        }
        
        @
Override
        
protected void onPause() {
            
super.onPause();
            
sm.unregisterListener(this);
        }

    }
    
    
    
//---------------پایان دستورات کلاس سنسور و دومین کلاس
    
private Button btn_sensor;
    
//
    
private ArrayList<SongsongList;
    private 
ListView songView;
 
    
//service
    
private MusicService musicSrv;
    private 
Intent playIntent;
    
//binding
    
private boolean musicBound=false;
 
    
//controller
    
private MusicController controller;
 
    
//
    
private boolean paused=falseplaybackPaused=false;
 
    @
Override
    
protected void onCreate(Bundle savedInstanceState) {
        
super.onCreate(savedInstanceState);
        
setContentView(R.layout.activity_main);
        
        
btn_sensor=(Button)findViewById(R.id.btn_sensor);
        
        
songView = (ListView)findViewById(R.id.song_list);
        
        
songList = new ArrayList<Song>;();
        
        
getSongList();
        
        
//
        
btn_sensor.setOnClickListener(new OnClickListener() {
            @
Override
            
public void onClick(View arg0) {
                
startActivity(new Intent(MainActivity.this,sensor.class));
            }
        });
        
        
        
Collections.sort(songList, new Comparator<Song>;(){
            public 
int compare(Song aSong b){
                return 
a.getTitle().compareTo(b.getTitle());
            }
        });
        
        
SongAdapter songAdt = new SongAdapter(thissongList);
        
songView.setAdapter(songAdt);
 
        
//setup controller
        
setController();
 
        
//end button        
        
ImageButton imageButton_end = (ImageButtonfindViewById(R.id.ib_end);
        
imageButton_end.setOnClickListener(new View.OnClickListener() {
            @
Override
            
public void onClick(View v) {
                
                
Intent intent = new Intent(MainActivity.thisMusicService.class);
                
stopService(intent);
                
                
finish();
            }
        });
    }
 
    
    private 
ServiceConnection musicConnection = new ServiceConnection(){
 
        @
Override
        
public void onServiceConnected(ComponentName nameIBinder service) {
            
MusicBinder binder = (MusicBinder)service;
            
            
musicSrv binder.getService();
            
musicSrv.setList(songList);
            
musicBound true;
        }
 
        @
Override
        
public void onServiceDisconnected(ComponentName name) {
            
musicBound false;
        }
    };
 
    @
Override
    
protected void onStart() {
        
super.onStart();
        if(
playIntent==null){
            
playIntent = new Intent(thisMusicService.class);
            
bindService(playIntentmusicConnectionContext.BIND_AUTO_CREATE);
            
startService(playIntent);
        }
    }
 
    
    public 
void songPicked(View view){
        
musicSrv.setSong(Integer.parseInt(view.getTag().toString()));
        
musicSrv.playSong();
        if(
playbackPaused){
            
setController();
            
playbackPaused=false;
        }
        
controller.show(0);
    }
    
    
    public 
void getSongList(){
        
        
ContentResolver musicResolver getContentResolver();
        
Uri musicUri android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
        
Cursor musicCursor musicResolver.query(musicUrinullnullnullnull);
        
//
        
if(musicCursor!=null && musicCursor.moveToFirst()){
            
//
            
int titleColumn musicCursor.getColumnIndex
                    
(android.provider.MediaStore.Audio.Media.TITLE);
            
int idColumn musicCursor.getColumnIndex
                    
(android.provider.MediaStore.Audio.Media._ID);
            
int artistColumn musicCursor.getColumnIndex
                    
(android.provider.MediaStore.Audio.Media.ARTIST);
            
//
            
do {
                
long thisId musicCursor.getLong(idColumn);
                
String thisTitle musicCursor.getString(titleColumn);
                
String thisArtist musicCursor.getString(artistColumn);
                
songList.add(new Song(thisIdthisTitlethisArtist));
            }
            while (
musicCursor.moveToNext());
        }
    }
 
    @
Override
    
public boolean canPause() {
        return 
true;
    }
 
    @
Override
    
public boolean canSeekBackward() {
        return 
true;
    }
 
    @
Override
    
public boolean canSeekForward() {
        return 
true;
    }
 
    public 
int getAudioSessionId() {
        return 
0;
    }
 
    @
Override
    
public int getBufferPercentage() {
        return 
0;
    }
 
    @
Override
    
public int getCurrentPosition() {
        if(
musicSrv!=null && musicBound && musicSrv.isPng())
            return 
musicSrv.getPosn();
        else return 
0;
    }
 
    @
Override
    
public int getDuration() {
        
        if(
musicSrv!=null && musicBound && musicSrv.isPng())
            return 
musicSrv.getDur();
        else return 
0;
    }
 
    @
Override
    
public boolean isPlaying() {
        if(
musicSrv!=null && musicBound)
            return 
musicSrv.isPng();
        return 
false;
    }
 
    @
Override
    
public void pause() {
        
        
playbackPaused=true;
        
musicSrv.pausePlayer();
    }
 
    @
Override
    
public void seekTo(int pos) {
        
musicSrv.seek(pos);
    }
 
    @
Override
    
public void start() {
        
musicSrv.go();
    }
 
    
    private 
void setController(){
        
controller = new MusicController(this);
        
        
controller.setPrevNextListeners(new View.OnClickListener() {
            @
Override
            
public void onClick(View v) {
                
playNext();
            }
        }, new 
View.OnClickListener() {
            @
Override
            
public void onClick(View v) {
                
playPrev();
            }
        });
        
        
controller.setMediaPlayer(this);
        
controller.setAnchorView(findViewById(R.id.song_list));
        
controller.setEnabled(true);
    }
 
    
    private 
void playNext(){
        
musicSrv.playNext();
        if(
playbackPaused){
            
setController();
            
playbackPaused=false;
        }
        
controller.show(0);
    }
 
    
    private 
void playPrev(){
        
musicSrv.playPrev();
        if(
playbackPaused){
            
setController();
            
playbackPaused=false;
        }
        
controller.show(0);
    }
 
    @
Override
    
protected void onPause(){
        
super.onPause();
        
paused=true;
    }
 
    @
Override
    
protected void onResume(){
        
super.onResume();
        if(
paused){
            
setController();
            
paused=false;
        }
    }
 
    @
Override
    
protected void onStop() {
        
controller.hide();
        
super.onStop();
    }
 
    @
Override
    
protected void onDestroy() {
        
stopService(playIntent);
        
musicSrv=null;
        
super.onDestroy();
    }

پاسخ


پیام‌های این موضوع
قرار دادن دو کلاس در یک تابع (کدهای دو Activity) (برنامه نویسی اندروید) - توسط shahramm - ۱۳۹۴/۰۸/۱۹, ۰۵:۳۳ ب.ظ

پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان