2016-10-21 26 views
0

我有一個應用程序,突然我的用戶界面停止工作分享按鈕的作品,也是選項菜單,但由於一些奇怪的原因我的按鈕停止工作,他們不點擊或做任何事情 。是否可能是由於我的OptionsMenu類的擴展?我不知道爲什麼 ?這是否經常發生,我嘗試新建立我的項目,但沒有用。我這裏有我的MainActivity類別我的用戶界面不工作(按鈕)

package com.mycompany.myapp; 
import android.app.*; 
import android.os.*; 
import android.widget.Button; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
import android.widget.EditText; 
import android.widget.AdapterView; 
import android.widget.TextView; 
import java.io.*; 
import android.content.*; 
import android.view.*; 
import android.media.*; 
import javax.security.auth.*; 
import android.util.*; 
import android.widget.AdapterView.*; 
import java.net.*; 
import org.apache.http.util.*; 
import android.webkit.*; 
import java.text.*; 
import android.graphics.*; 
import android.widget.TextView.*; 
import android.text.*; 
import android.widget.ActionMenuView.*; 
import android.view.MenuItem.*; 
import android.widget.*; 
import android.content.Intent; 
import android.net.*; 
import java.util.*; 
import java.nio.channels.*; 
import java.nio.*; 
import android.*; 
public class MainActivity extends OptionsMenu 
{ 
private MusicPlayer musicPlayer; 
private String pos = ""; 
private FileManager fm; 
private BlueTheme BlueTheme; 
private PinkTheme PinkTheme; 
private Downloader downloader; 
private EditTextCustomizable etc; 

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); 
    StrictMode.setThreadPolicy(policy); 
    musicPlayer = new MusicPlayer(new MediaPlayer()); 
    fm = new FileManager(this,this); 
    BlueTheme = new BlueTheme(this,this ,fm); 
    PinkTheme = new PinkTheme(this,this,fm); 
    etc = new EditTextCustomizable(this , BlueTheme , PinkTheme); 
    etc.customize(); 
    Button rewind = (Button)findViewById(R.id.rewind); 
    rewind.setText("<"); 
    Button fwd = (Button)findViewById(R.id.fwd); 
    fwd.setText(">"); 
    ListView downloadsList = (ListView) findViewById(R.id.downloads); 
    downloadsList.setOnItemClickListener(new AdapterView.OnItemClickListener(){ 
      @Override 
      public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3){ 
       ListView downloadsList = (ListView) findViewById(R.id.downloads); 
       pos = downloadsList.getItemAtPosition(position).toString(); 
       musicPlayer.InitPlay(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getPath() + "/" + pos); 
      }}); 
} 
public void Play(View view){ 
    musicPlayer.Play(); 
    EditText search = (EditText)findViewById(R.id.search); 
    musicPlayer.SearchResult(search.getText().toString()); 
} 


public void Pause(View view){ 
    musicPlayer.Pause(); 
} 

public void Stop(View view){ 
    musicPlayer.Stop(); 
    } 
public void Rewind(View view){ 
    musicPlayer.Rewind(); 
} 

public void Fwd(View view){ 
    musicPlayer.Fwd(); 
} 

public void onDownloadClick(View view){ 
    EditText bar = (EditText)findViewById(R.id.search); 
    String downloadFile = bar.getText().toString(); 
    downloader.DownloadURL(downloadFile); 
} 
} 

這裏是我在哪裏延伸,我沒有使用AppCompatActivity活動注意OptionsMenu類。

package com.mycompany.myapp; 
import android.view.*; 
import android.app.*; 
import android.net.*; 
import java.util.*; 
import android.widget.ListView; 
import android.content.*; 
import java.io.*; 
import android.widget.*; 
import android.*; 
public class OptionsMenu extends Activity 
{ 
private MusicPlayer musicPlayer; 
private FileManager fm; 
private BlueTheme blueTheme; 
private PinkTheme pinkTheme; 
private final int blue = Menu.FIRST; 
private final int pink = blue + 1; 
private int items = 0; 

@Override 
public boolean onCreateOptionsMenu(Menu menu) 
{ 
    fm = new FileManager(this,this); 
    blueTheme = new BlueTheme(this,this,fm); 
    pinkTheme = new PinkTheme(this,this,fm); 
    fm.ListFiles(); 
    menu.clear(); 
    MenuInflater inflator = getMenuInflater(); 
    inflator.inflate(R.menu.sidebar_menu, menu); 
    SubMenu subMenu = menu.addSubMenu("Themes"); 
    subMenu.add(0 , blue , 0 , "Blue"); 
    subMenu.add(0, pink , 1, "Pink"); 
    items = subMenu.getItem().getItemId(); 

    // tool bar menu 
    ArrayList<Uri> al = new ArrayList<Uri>(); 
    ArrayList<Uri> emailAl = new ArrayList<Uri>(); 
    MenuItem mi = menu.findItem(R.id.searchable); 
    MenuItem share = menu.findItem(R.id.share); 
    mi.setIcon(android.R.drawable.ic_search_category_default); 
    SearchView searchView = (SearchView) menu.findItem(R.id.searchable).getActionView(); 
    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); 
    searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); 
    ShareActionProvider sap = (ShareActionProvider) share.getActionProvider(); 
    Intent intentShare = new Intent(Intent.ACTION_SEND_MULTIPLE); 
    Intent intentEmail = new Intent(Intent.ACTION_SEND_MULTIPLE); 
    intentShare.setType("audio/mp3"); 
    intentEmail.setType("audio/mp3"); 
    Uri uri = null; 
    Uri uriEmail = null; 
    //FileInputStream in = null; 
    //FileOutputStream out = null; 
    //try{ 
    // for(File file : downloads){ 
    // uri = Uri.fromFile(file); 
    //  in = new FileInputStream(file); 
    //  File outFile = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), file.getName()); // IMPORTANT! You need to create your file object separately, so you can then pass it to intent as well.. 
    //  out = new FileOutputStream(outFile); 
    // byte[] buf = new byte[1024]; 
    //  int len; 
    //  while ((len = in.read(buf, 0, buf.length)) != -1){ 
    //  out.write(buf, 0, len); 
    //   } 

    //   in.close(); 
    //   out.flush(); 
    //   out.close(); 
    //   uriEmail = Uri.fromFile(outFile); // Here you passed the parent directory file.. Pass newly created file object .. 
    //   al.add(uri); 
    //   emailAl.add(uriEmail); 

    //   } 

    //   } catch(IOException e){ 
    //    e.printStackTrace(); 
    //   } 
    //for(File file : fm.GetDownloadFiles()){ 
    // uriEmail = Uri.fromFile(fm.exportFile(file)); 
    //} 
    emailAl.add(uriEmail); 
    intentShare.putParcelableArrayListExtra(Intent.EXTRA_STREAM,al); 
    intentEmail.putParcelableArrayListExtra(Intent.EXTRA_STREAM,emailAl); 
    intentEmail.putExtra(Intent.EXTRA_SUBJECT , "Subject"); 
    intentEmail.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); 
    sap.setShareIntent(intentShare); 
    sap.setShareIntent(intentEmail); 
    return super.onCreateOptionsMenu(menu); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) 
{ 

    switch(item.getItemId()){ 
     case R.id.playlist: 

      break; 
     case blue: 
      blueTheme.Blue(); 
      break; 

     case pink: 
      pinkTheme.Pink(); 
      break; 
     case R.id.muteoption: 
      musicPlayer.MuteVolume(); 
      break; 
     case R.id.unmuteoption: 
      musicPlayer.UnMuteVolume(); 
      break; 

     default: 
      return super.onOptionsItemSelected(item); 
      // TODO: Implement this method 
    } 
    return super.onOptionsItemSelected(item); 
} 
} 

如果需要,我可以張貼更多的代碼。並且將重新編輯,如果不夠清晰謝謝

EDITED

這裏是佈局XML如果可能的話

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<Toolbar 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:elevation="4dp" 
    android:showAsAction="always" 
    android:windowActionBar="false" 
    android:theme="@android:style/Theme.Holo.Light" 
    /> 

<TextView 
    android:id="@+id/downloadsTextView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    /> 
<Button 
    android:id="@+id/downloadButton" 
    android:text="@string/downloadButton" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:onClick="onDownloadClick" 
/> 

<EditText 
    android:id="@+id/search" 
    android:hint="Do something" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:layout_below="@id/downloadButton" 
    android:background="@android:color/transparent" 
    android:paddingBottom="20dp" 
    android:paddingTop="20dp"/> 

<Button 
    android:id="@+id/pause" 
    android:text="@string/pause" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:onClick="Pause" 
    android:layout_centerInParent="true" 
    android:layout_below="@id/search" 
    /> 

<Button 
    android:id="@+id/play" 
    android:text="@string/play" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:onClick="Play" 
    android:layout_toRightOf="@id/pause" 
    android:layout_below="@id/search"/> 

<Button 
    android:id="@+id/stop" 
    android:text="@string/stop" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:onClick="Stop" 
    android:layout_toLeftOf="@id/pause" 
    android:layout_below="@id/search"/> 

<Button 
    android:id="@+id/rewind" 
    android:text="@string/rewind" 
    android:layout_height="wrap_content" 
    android:layout_width="50dp" 
    android:onClick="Rewind" 
    android:layout_toLeftOf="@id/stop" 
    android:layout_below="@id/search"/> 

<Button 
    android:id="@+id/fwd" 
    android:text="@string/fwd" 
    android:layout_height="wrap_content" 
    android:layout_width="50dp" 
    android:onClick="Fwd" 
    android:layout_toRightOf="@id/play" 
    android:layout_below="@id/search"/> 

<ListView 
    android:id="@+id/downloads" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@id/rewind" 
    /> 
</RelativeLayout> 
+0

我看不到你設置onClickListener的大部分按鈕。它是否在佈局XML中設置?如果不是,那可能是問題所在。 –

+0

是的,所有的按鈕都是在使用OnClick的XML佈局中設置的,但它突然停止。 –

+0

OnItemClickListener不工作,我知道代碼是正確的(不是粗魯,我知道我是一個新手),但它現在工作之前,現在沒有什麼沒有點擊或什麼????? –

回答

0

粘貼您的佈局XML。我想這是由某些東西(也許是一些父視圖)導致的焦點中斷,所以子視圖按鈕無法獲得焦點。

+0

我已經發布了佈局XML謝謝你的幫助BTW –