我正在开发一个应用程序,并且正在开发一个“发布”服务,您可以在其中编写帖子并将其显示在由listview组成的供稿屏幕上。
现在一切似乎都很好,但是我不知道为什么它甚至在开始之前就崩溃了。
这是代码:

上课时间:

package com.example.ali.test1;

import android.app.Activity;
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.text.Editable;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;

import java.util.ArrayList;


public class Post extends ActionBarActivity {
        EditText input;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_post);

        // android:id="@+id/input"
        input = (EditText) findViewById(R.id.input);
        // android:id="@+id/list"


        startActivityForResult(new Intent(Post.this , MainActivity.class), 1);
    }


    public void addToList(View v) {
        Editable text = input.getText();
        Intent intent = new Intent();
        intent.putExtra("result", text);
        setResult(Activity.RESULT_OK, intent);
        finish();
    }

    }


在这个类中,我有一个编辑文本和一个按钮,一旦按下按钮,我应该在编辑文本中获取文本并发布在另一个类的listView中

主要:

package com.example.ali.test1;

import android.app.Activity;
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import java.util.ArrayList;


public class MainActivity extends ActionBarActivity   {


    ListView list;
    ArrayAdapter<String> adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, new ArrayList<String>());
        list.setAdapter(adapter);

    }

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {


            if (requestCode == 1) if (resultCode == Activity.RESULT_OK) {
                String result = data.getStringExtra("result");
                adapter.add(result);
                adapter.notifyDataSetChanged();



            }
        }



    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);

        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        int id2 = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        else if (id2 == R.id.action_cart) {
            startActivity(new Intent(MainActivity.this, Post.class));
        }
        return super.onOptionsItemSelected(item);
    }
}


xml文件是:

发布:

<RelativeLayout 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:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context="com.example.ali.test1.Post">


    <EditText
        android:id="@+id/input"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
       />
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Add to list"
        android:onClick="addToList"
        android:layout_below="@id/input"/>


</RelativeLayout>


主要:

<RelativeLayout 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:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context="com.example.ali.test1.MainActivity">



    <ListView
    android:id="@+id/list1"
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:layout_weight="1" />


</RelativeLayout>


任何帮助将不胜感激,我在这里停留了太长时间了。
谢谢。

最佳答案

更改您的MainActivity。因为您没有正确初始化Listview。

 ListView list;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    list= (ListView) findViewById(R.id.list1);
    adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, new ArrayList<String>());
    list.setAdapter(adapter);

}

10-08 18:29