The id that you are using for list looks fine.
That layout is normally used when you have only a listview with id as you have and your second textview with id empty, which will be displayed when there are no elements in the listview.
But since you have a textview apart from the listView [the top one] you need to take a different approach.
You can either
1. use just a listView and take off the textView. Then add it as the header for the listView.
2. make you activity extend Activity and not the ListActivity and use normal ids and not "@android:id/list" ie., like
Using xml Syntax Highlighting
Parsed in 0.001 seconds, using GeSHi
And then Access the ListView after you inflate that xml[call setContentView(R.layout.category); ].
You will then be able to set the adapter on it.
3. Just use the normal listlayout and add the TextView as a childView as the first child from your java code.
But it would be more helpful if you use logcat and post your error as it says.
Because apart from all that I have said above the other reason might be that you do not have a Correct ListItem layout but that is not so in your case as you are using the default R.layout.simple_list_item_1 layout.