Не могу открыть class в проекте с TabHost
Добавлено: 27 май 2014, 16:49
Переделываю проектс ActionBarActivity c PageView в просто TabHost.
Пишет ошибку при открытии класса Таба.
Error - Caused by: java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.tabhost/com.example.tabhost.Tab1}: java.lang.ClassCastException: com.example.tabhost.Tab1
Плз, хелп.
MainActivity.java
[syntax=java5]...
@SuppressWarnings("deprecation")
public class MainActivity extends TabActivity {
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
...
Resources res = getResources(); // Resource object to get Drawables
TabHost tabHost = getTabHost(); // The activity TabHost
TabHost.TabSpec spec; // Reusable TabSpec for each tab
Intent intent; // Reusable Intent for each tab
// Create an Intent to launch an Activity for the tab (to be reused)
intent = new Intent().setClass(this, Tab1.class);
spec = tabHost.newTabSpec("home")
.setIndicator("HOME", res.getDrawable(R.drawable.ic_tab1_1))
.setContent(intent);
tabHost.addTab(spec); <<<<<<<<<<<<<<<< ERROR <<<<<<<<<<<<<<<<<<<<
...
// set tab which one you want open first time 0 or 1 or 2
//tabHost.setCurrentTab(0);
...
[/syntax]
Tab1.java
[syntax=java5]...
public class Tab1 extends Fragment {
ListView list;
LazyAdapter adapter;
ArrayList<HashMap<String, String>> itemList = new ArrayList<HashMap<String, String>>();
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
Document doc = MainActivity.parser.getDomElement(MainActivity.xml);
NodeList nl = doc.getElementsByTagName("tab1");
...
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.tab1, container, false);
list = (ListView) rootView.findViewById(R.id.list);
// Click event for single list row
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
@SuppressWarnings("unchecked")
String sss = ((Map<String, String>) adapter.getItem(position))
.get(MainActivity.KEY_LINK);
Log.d("myLogs", sss);
Uri address = Uri.parse(sss);
Intent openlink = new Intent(Intent.ACTION_VIEW, address);
startActivity(openlink);
}
});
return rootView;
}[/syntax]
Пишет ошибку при открытии класса Таба.
Error - Caused by: java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.tabhost/com.example.tabhost.Tab1}: java.lang.ClassCastException: com.example.tabhost.Tab1
Плз, хелп.
MainActivity.java
[syntax=java5]...
@SuppressWarnings("deprecation")
public class MainActivity extends TabActivity {
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
...
Resources res = getResources(); // Resource object to get Drawables
TabHost tabHost = getTabHost(); // The activity TabHost
TabHost.TabSpec spec; // Reusable TabSpec for each tab
Intent intent; // Reusable Intent for each tab
// Create an Intent to launch an Activity for the tab (to be reused)
intent = new Intent().setClass(this, Tab1.class);
spec = tabHost.newTabSpec("home")
.setIndicator("HOME", res.getDrawable(R.drawable.ic_tab1_1))
.setContent(intent);
tabHost.addTab(spec); <<<<<<<<<<<<<<<< ERROR <<<<<<<<<<<<<<<<<<<<
...
// set tab which one you want open first time 0 or 1 or 2
//tabHost.setCurrentTab(0);
...
[/syntax]
Tab1.java
[syntax=java5]...
public class Tab1 extends Fragment {
ListView list;
LazyAdapter adapter;
ArrayList<HashMap<String, String>> itemList = new ArrayList<HashMap<String, String>>();
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
Document doc = MainActivity.parser.getDomElement(MainActivity.xml);
NodeList nl = doc.getElementsByTagName("tab1");
...
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.tab1, container, false);
list = (ListView) rootView.findViewById(R.id.list);
// Click event for single list row
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
@SuppressWarnings("unchecked")
String sss = ((Map<String, String>) adapter.getItem(position))
.get(MainActivity.KEY_LINK);
Log.d("myLogs", sss);
Uri address = Uri.parse(sss);
Intent openlink = new Intent(Intent.ACTION_VIEW, address);
startActivity(openlink);
}
});
return rootView;
}[/syntax]