有Activity继承ActoinBarActivity,它NavigationDrawer通过点击其元素打开片段来描述sidebar().在其中一个片段中listView,通过单击我想要打开另一个片段的项目(员工 - 员工列表 - 员工数据).但我是一个错误
不兼容的类型:必需:Android.app.Fragment找到:com.abc.app.EmployeeDetails
public class MyEmployeeFragment extends Fragment {
//some code
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
userList = new ArrayList<User>();
sAdapter = new CustomAdapter(getActivity(),userList);
View rootView = inflater.inflate(R.layout.my_employe, container, false);
ListView lv = (ListView)rootView.findViewById(R.id.list);
lv.setAdapter(sAdapter);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Fragment f = new EmployeeDetails(); // ERROR
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction ft = fragmentManager.beginTransaction(); …Run Code Online (Sandbox Code Playgroud) 此代码适用于Java.但是在迁移到Kotlin之后,native fun stringFromNative(): String使用以下文本将编译器higlits方法 作为错误:
没有身体的功能必须是抽象的
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
Toast.makeText(this, stringFromNative(), Toast.LENGTH_LONG).show()
}
companion object {
init {
System.loadLibrary("_ndkkt")
}
native fun stringFromNative(): String
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢@KenVanHoeylandt!
Andswer是:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
Toast.makeText(this, stringFromNative(), Toast.LENGTH_LONG).show()
}
init {
System.loadLibrary("_ndkkt")
}
external fun getStringFromNative(): String
}
}
Run Code Online (Sandbox Code Playgroud) 我尝试在片段中显示listView.但方法setListAdapter - 未解析.我想,我必须得到listView(android.R.id.list)的id; 然后:lv.setAdapter(mAdapter);但它也不起作用.
public class MyEmployeeFragment extends Fragment {
private CustomAdapter sAdapter;
private List<User> userList;
ProgressDialog mProgressDialog;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
setHasOptionsMenu(true);
userList = new ArrayList<User>();
sAdapter = new CustomAdapter(getActivity(),userList);
setListAdapter(sAdapter);
new CustomAsync().execute();
}
private class CustomAdapter extends ArrayAdapter<User> {
private LayoutInflater inflater;
public CustomAdapter(Context context, List<User> objects) {
super(context, 0, objects);
inflater = LayoutInflater.from(context);
}
class ViewHolder {
TextView id;
TextView name;
TextView lastName;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) { …Run Code Online (Sandbox Code Playgroud)