我有一個應用程序,突然我的用戶界面停止工作分享按鈕的作品,也是選項菜單,但由於一些奇怪的原因我的按鈕停止工作,他們不點擊或做任何事情 。是否可能是由於我的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>
我看不到你設置onClickListener的大部分按鈕。它是否在佈局XML中設置?如果不是,那可能是問題所在。 –
是的,所有的按鈕都是在使用OnClick的XML佈局中設置的,但它突然停止。 –
OnItemClickListener不工作,我知道代碼是正確的(不是粗魯,我知道我是一個新手),但它現在工作之前,現在沒有什麼沒有點擊或什麼????? –