我很抱歉。我知道这一定是直截了当的。相当熟悉Android的新手。 我正在创建一个主要活动,并尝试在意图的帮助下调用另一个活动。 其他活动包含列表视图。我试图在列表视图中显示简单的字符串。所以我认为我不需要写任何一个获取视图。只需AdapterView应该可以正常工作。 一些代码可以解释我的更多内容如下: 主要活动按钮onClick方法如下:
public void manage(View view) {
Intent managerIntent;
managerIntent = new Intent( this,ShowActivity.class);
managerIntent.putExtra(FILE_URI, mediaStorageDir.getAbsolutePath());
startActivity(managerIntent);
}
ShowActivity如下:
public class ShowActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ArrayList<String> strings = new ArrayList<String>();
Intent intent = getIntent();
MyService sc = new MyService()
sc.fill(strings,intent);
final ArrayAdapter<String> ListObject = new ArrayAdapter<String>(ShowReceiptsActivity.this,
android.R.layout.simple_list_item_1, strings);
ListView listView = (ListView)findViewById(R.id.listView);// This line gives null pointer exception
listView.setAdapter(ListObject);
setContentView(R.layout.activity_show_receipts);
}
}
activity_show.xml如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.receiptboss.manager.ShowReceiptsActivity">
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.receiptboss.manager.ShowReceiptsActivity"/>
</LinearLayout>
非常感谢任何帮助。
答案 0 :(得分:1)
您必须在setContentView(R.layout.activity_show)
课程中的onCreate(Bundle saveInstanceState)
方法中致电ShowActivity
,如下面的代码所示:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Here is your missing method
// as param set R.layout.activity_show or R.layout.activity_show_receipts
//it is depend of layout xml name
setContentView(R.layout.activity_show)
....
}
在您的活动上调用方法findViewById(int)
之前,您必须在活动中将布局设置为内容视图。现在你把这个方法称为最后一个 - 这是错误的。