요소를 표시하는 데 목록 어댑터를 사용하는 목록보기가있는 활동이 있습니다. 프래그먼트에서 텍스트가있는 요소를 클릭하면 재생 버튼이 있고 바를 찾고 미디어 플레이어가 있어야합니다. 그러나 내 활동이 호출되면이 오류가 발생합니다. 조각이 표시되지 않습니다.
라인 14
가 "단편"시작 태그> 02-26 02:01:27.625: E/AndroidRuntime(2419): FATAL EXCEPTION: main
> 02-26 02:01:27.625: E/AndroidRuntime(2419):
> java.lang.RuntimeException: Unable to start activity
> ComponentInfo{com.songs/com.songs.display.DisplaysongDetails}:
> android.view.InflateException: Binary XML file line #14: Error
> inflating class fragment
을 갖는 하나 list_songs이다
활동에 대한 코드가
public class DisplaysongDetails extends ListActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.list_songs);
setListAdapter(new ArrayAdapter<String>(this, R.layout.row,songDetails));
ListView listView = (ListView) this.findViewById(android.R.id.list);//getListView();
listView.setTextFilterEnabled(true);
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
String name = ((TextView) view).getText().toString();
if (name=="Play")
{
PlayerFragment frag = (PlayerFragment) getFragmentManager().findFragmentById(R.id.player_fragment);
if (frag == null) {
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.add(R.id.player_fragment, new PlayerFragment());
ft.commit();
}}
}
});
}}
list_songs.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF">
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<fragment
android:id="@+id/player_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.songs.PlayerFragment" />
</LinearLayout>
조각 클래스는 다음과 같습니다
public class PlayerFragment extends Fragment implements OnTouchListener, OnCompletionListener, OnBufferingUpdateListener{
private Button btn_play;
private SeekBar seekBar;
private MediaPlayer mediaPlayer;
private int lengthOfAudio;
private int length=0;
String URL = (new AppConfig()).getURL();
private final String url = URL + "/play/song.mp3";
private final Handler handler = new Handler();
private final Runnable r = new Runnable() {
public void run() {
updateSeekProgress();
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@SuppressLint("NewApi")
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.player_fragment, container, false);
btn_play = (Button) view.findViewById(R.id.btn_play);
btn_play.setOnClickListener(new OnClickListener());
seekBar = (SeekBar)getActivity().findViewById(R.id.seekBar);
seekBar.setOnTouchListener(this);
mediaPlayer = new MediaPlayer();
mediaPlayer.setOnBufferingUpdateListener(this);
mediaPlayer.setOnCompletionListener(this);
return view;
}}
조각의 XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<SeekBar
android:id="@+id/seekBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="3dp" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:gravity="center_horizontal"
android:orientation="horizontal" >
<Button
android:id="@+id/btn_play"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:text="play" />
</LinearLayout>
</LinearLayout>
스택 추적이 더 이상 말합니까? 가득 찬 빨간 부분을 게시하십시오. 또한, name == "Play"는'name.equals ("Play")'이어야합니다. –
xml의 단편에 올바른 경로를 지정했습니다. –
전체 스택 추적은 무엇입니까? – alex