ListView项目删除没有发生

时间:2015-07-06 16:34:19

标签: android listview android-intent android-activity

目的是将字符串存储在普通列表视图中,然后用户触摸(单击)它与用户选择的项目一起移动到下一页。一旦用户单击Operation.java中的“拒绝按钮”,就应该从List.java活动中取消。它没有发生。它显示“不幸的是,系统已停止”。

MainActivity.java

   public static int loop_exute=0  // first page variable
   Intent i = new Intent(getApplicationContext(), List.class);  
   startActivity(i);

List.java

import android.R.string;
import android.support.v7.app.ActionBarActivity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;

public class List extends ActionBarActivity implements OnItemClickListener {

      private ListView mainListView ;
      private ArrayAdapter<String> listAdapter ;
      Button buttonSum;  
      static String[]  name; 
      ArrayList<String> planetList = new ArrayList<String>();
      int pos;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list);
         mainListView = (ListView) findViewById( R.id.mainListView );

         Bundle extras = getIntent().getExtras();

      if(MainActivity.loop_exute==0) // acces 1st page value because the string array value sholuld load only once in its life time
         {

            MainActivity.loop_exute=MainActivity.loop_exute+2;

            name = new String[] { "AAA", "BBB", "CCC", "DDD"
                  }; 

            planetList.addAll( Arrays.asList(name) );

            listAdapter = new ArrayAdapter<String>(this, R.layout.simplerow, planetList);

            mainListView.setAdapter( listAdapter );  

            //mainListView.getChildAt(0).setBackgroundColor(Color.RED);

            show();

}
else  // second time call 
{
              Intent intent = getIntent();        
            if(intent.hasExtra("MESSAGE"))
              {
                    Bundle  bd = getIntent().getExtras();
                    if(!bd.getString("MESSAGE").equals(null))
                     {
                        String object=bd.getString("MESSAGE");
                        int pos=planetList.indexOf(object);
                    planetList.remove(pos);
                    listAdapter.notifyDataSetChanged();             //show();
                      }

             }
    }
}


public void show()
{ 
mainListView.setOnItemClickListener(new AdapterView.OnItemClickListener(){ 
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) 

        {


            Intent i = new Intent(getApplicationContext(), Operation.class);  

            i.putExtra("Value2",name[pos]);  
            startActivity(i);

        }
    });

    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.list, 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();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
        // TODO Auto-generated method stub

    }
}

Operation.java

reject = (ImageButton) findViewById(R.id.imageButton2);
reject.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) {

         Intent i = new Intent(getApplicationContext(), List.class);  
        i.putExtra("MESSAGE",value1); //send the list item value what we    select in previous activity

           startActivity(i);


    }
    });

1 个答案:

答案 0 :(得分:0)

在Operation.java下的setOnClickListener中,您正在尝试启动另一个活动。而是插入代码以手动销毁活动。您也可以使用finish()方法。这是一个了解更多信息的链接:

http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle