2015-11-12 2 views
1

У меня есть приложение, содержащее список. Когда элемент списка просматривается, он открывает новое действие, содержащее текстовое представление и Burton.Различные действия при нажатии кнопки на разных элементах просмотра списка

Here - это изображения моего списка.

Теперь, если я нажимаю кнопку внутри действия элемента списка 1, я хочу, чтобы он открыл активность 1, если я нажму кнопку внутри действия элемента списка 2, я хочу, чтобы она открыла действие 2 и т. Д. Для «n «Нажмите кнопку« Я », чтобы открывать действия« n ». Это возможно?

Основной activity.java

public class MainActivity extends Activity { 
// Declare Variables 
ListView listview; 
List<ParseObject> ob; 
ProgressDialog mProgressDialog; 
ArrayAdapter<String> adapter; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    // Get the view from listview_main.xml 
    setContentView(R.layout.listview_main); 
    // Execute RemoteDataTask AsyncTask 
    new RemoteDataTask().execute(); 
} 

// RemoteDataTask AsyncTask 
private class RemoteDataTask extends AsyncTask<Void, Void, Void> { 
    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     // Create a progressdialog 
     mProgressDialog = new ProgressDialog(MainActivity.this); 
     // Set progressdialog title 
     mProgressDialog.setTitle("Parse.com Simple ListView Tutorial"); 
     // Set progressdialog message 
     mProgressDialog.setMessage("Loading..."); 
     mProgressDialog.setIndeterminate(false); 
     // Show progressdialog 
     mProgressDialog.show(); 
    } 

    @Override 
    protected Void doInBackground(Void... params) { 
     // Locate the class table named "Country" in Parse.com 
     ParseQuery<ParseObject> query = new ParseQuery<ParseObject>(
      "Country"); 
     query.orderByDescending("_created_at"); 
     try { 
      ob = query.find(); 
     } catch (ParseException e) { 
      Log.e("Error", e.getMessage()); 
      e.printStackTrace(); 
     } 
     return null; 
    } 

    @Override 
    protected void onPostExecute(Void result) { 
     // Locate the listview in listview_main.xml 
     listview = (ListView) findViewById(R.id.listview); 
     // Pass the results into an ArrayAdapter 
     adapter = new ArrayAdapter<String>(MainActivity.this, 
              R.layout.listview_item); 
     // Retrieve object "name" from Parse.com database 
     for (ParseObject country : ob) { 
      adapter.add((String) country.get("name")); 
     } 
     // Binds the Adapter to the ListView 
     listview.setAdapter(adapter); 
     // Close the progressdialog 
     mProgressDialog.dismiss(); 
     // Capture button clicks on ListView items 
     listview.setOnItemClickListener(new OnItemClickListener() { 
       @Override 
       public void onItemClick(AdapterView<?> parent, View view, 
             int position, long id) { 
        // Send single item click data to SingleItemView Class 
        Intent i = new Intent(MainActivity.this, 
              SingleItemView.class); 
        // Pass data "name" followed by the position 
        i.putExtra("name", ob.get(position).getString("name") 
           .toString()); 
        // Open SingleItemView.java Activity 
        startActivity(i); 
       } 
      }); 
    } 
    } 
} 

singleitemview. Java

public class SingleItemView extends Activity { 
// Declare Variables 
TextView txtname; 
String name; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    // Get the view from singleitemview.xml 
    setContentView(R.layout.singleitemview); 

    // Retrieve data from MainActivity on item click event 
    Intent i = getIntent(); 

    // Get the name 
    name = i.getStringExtra("name"); 

    // Locate the TextView in singleitemview.xml 
    txtname = (TextView) findViewById(R.id.name); 

    // Load the text into the TextView 
    txtname.setText(name); 

} 
} 
+0

Okay.Where вашего код ??? –

+0

@IntelliJAmiya Я разместил свой код, пожалуйста, посмотрите – user5551183

+0

вы хотите открыть n экземпляров SingleItemView? или n различных видов деятельности, таких как SingleItemView_1, ..., SingleItemView_n – 0X0nosugar

ответ

0

Что вы попросили, в соответствии с этим ListView установлен, и вы хотите, чтобы открыть различные виды деятельности по каждому пункту нажмите, как предварительно определено Лик вы сказали Activiy1 на первом пункте и 2 на 2 пункта нажатием кнопки, так на.

вы можете сделать это с помощью listView.setOnItemClickListener.

ListView list = (ListView) findViewById(R.id.listViewXML_ID); 
list.setOnItemClickListener(new OnItemClickListener() { 


     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      switch(position){ 
      case 0: 
       //Toast.makeText(getApplicationContext(), (String)parent.getItemAtPosition(position), Toast.LENGTH_LONG).show(); 
       Intent i = new Intent(MainActivity.this,Activity1.class); 
       startActivity(i); 
       break; 
      case 1: 
       Intent i1 = new Intent(MainActivity.this,Activity2.class); 
       startActivity(i1); 
       break; 


      } 
     } 
    }); 

И забудьте объявить эти действия в файле манифеста.

<activity android:name="packageName.Class1"></activity> 
<activity android:name="packageName.Class2"></activity> 

Код для Activity1:

import android.view.View.OnClickListener; 
import android.widget.Button; 

public class Activity1extends Activity{ 

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

    btnActivity1 = (Button) findViewById(R.id.btnID_in_XML);//make a button in activity_main and assign it an id like i did here. 
    btnActivity1.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View view) { 
      Intent i = new Intent(Activity1.this,Class2.class); 
      startActivity(i); 
     } 
    }); 
} 

Таким образом, вы можете открыть деятельности от деятельности открывается из щелчка списка ...

+0

Это не когда элемент списка, который я нажал. После щелчка элемента liistview открытое открытое действие содержит кнопку. Этот щелчок кнопки должен открыть новое действие. И каждый элемент liistview после открытия содержит кнопку, которая должна открывать разные действия. Надеюсь, ты. Пожалуйста, помогите мне – user5551183

+0

Бадди просто, добавьте кнопку в Activity1 и Activity2, и столько же действий вы хотите, чтобы из этих Актурий делали кодирование на кнопке, чтобы открыть другое действие ..! –

+0

Но активность, в которой я хочу добавить кнопку, - это активность, которая открывается при нажатии на элемент списка. Поэтому буквально я могу определить только одну кнопку в XML. так что, пожалуйста, помогите мне, приятель! – user5551183

Смежные вопросы