我有一个类,XXXFragment,它扩展了Fragment。 XXXFragment提供了ListView。似乎合理(从类名)我应该修改XXXFragment以便它扩展ListFragment,但我无法弄清楚如何。
现在我知道ListFragment确实扩展了Fragment,我认为它是正确的,并且不知道为什么Android Studio会抱怨。请参阅以下有关Studio的错误消息。问题是下面突出显示的行。非常感谢。
以下是代码:
++++ XXXFragment +++++
import android.app.ListFragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;
import java.util.ArrayList;
/**
* Created by berman on 3/7/15.
*/
public class XXXFragment extends ListFragment {
public XXXFragment() {
super();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
.... create & return view
}
}
+++++ MainActivity.java
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
**.add(R.id.container, new XXXFragment()) <<<**
.commit();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
}
}
强制Studio编译时出现错误消息:
Error:(17, 21) error: no suitable method found for add(int,ChatFragment)
method FragmentTransaction.add(Fragment,String) is not applicable
(argument mismatch; int cannot be converted to Fragment)
method FragmentTransaction.add(int,Fragment) is not applicable
(argument mismatch; ChatFragment cannot be converted to Fragment)
答案 0 :(得分:0)
问题是import语句之间存在冲突。 在MainActivity我有
import android.support.v7.app.ActionBarActivity;
在XXXFragment中,我使用
import android.app.Fragment (or ListFragment)
失败了。
如果我将其更改为
import android.support.v4.app.ListFragment; (or Fragment)
它有效。