#android
#Android
Вопрос:
Где я могу добавить код щелчка по элементу, чтобы перейти к другому действию?
side_screen.java
package com.example.asus.myapplication;
import android.app.SearchManager;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v4.widget.ExploreByTouchHelper;
import android.support.v7.view.menu.MenuView;
import android.support.v7.widget.SearchView;
import android.view.View;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.AdapterView;
import android.widget.ExpandableListView;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.google.android.gms.appindexing.Action;
import com.google.android.gms.appindexing.AppIndex;
import com.google.android.gms.appindexing.Thing;
import com.google.android.gms.common.api.GoogleApiClient;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class side_screen extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {
HashMap<String, List<String>> Computer_category;
List<String> Computer_list;
ExpandableListView Exp_list;
ComputerAdapter adapter;
int photo_num;
ImageView imageView;
private GoogleApiClient client;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_side_screen);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setTitle("meun");
toolbar.setSubtitle("courses");
setSupportActionBar(toolbar);
Exp_list = (ExpandableListView) findViewById(R.id.exp_list);
Computer_category = DataProvider.getInfo();
Computer_list = new ArrayList<String>(Computer_category.keySet());
adapter = new ComputerAdapter(this, Computer_category, Computer_list);
Exp_list.setAdapter(adapter);
Exp_list.setOnItemClickListener(new ExpandableListView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
}
});
Intent searchintent = getIntent();
if (Intent.ACTION_SEARCH.equals(searchintent.getAction())) {
String query = searchintent.getStringExtra(SearchManager.QUERY);
Toast.makeText(side_screen.this, query, Toast.LENGTH_SHORT).show();
}
imageView = (ImageView) findViewById(R.id.image_show);
final ImageButton but_next = (ImageButton) findViewById(R.id.next);
final ImageButton but_back = (ImageButton) findViewById(R.id.back);
but_next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (photo_num < 4) {
photo_num ;
imageView.setImageResource(getResources().getIdentifier("bri_".concat(String.valueOf(photo_num)), "drawable", getPackageName()));
but_back.setEnabled(true);
} else {
but_next.setEnabled(false);
}
}
});
but_back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (photo_num > 1) {
photo_num--;
imageView.setImageResource(getResources().getIdentifier("bri_".concat(String.valueOf(photo_num)), "drawable", getPackageName()));
but_next.setEnabled(true);
} else {
but_back.setEnabled(false);
}
}
});
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
}
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.side_screen, menu);
SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
SearchManager searchManager = (SearchManager) getSystemService(SEARCH_SERVICE);
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.item1) {
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
if (id == R.id.nav_camera) {
// Handle the camera action
} else if (id == R.id.nav_gallery) {
} else if (id == R.id.nav_slideshow) {
} else if (id == R.id.nav_manage) {
} else if (id == R.id.nav_share) {
} else if (id == R.id.nav_send) {
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
public Action getIndexApiAction() {
Thing object = new Thing.Builder()
.setName("menu courses") // TODO: Define a title for the content shown.
// TODO: Make sure this auto-generated URL is correct.
.setUrl(Uri.parse("http://[ENTER-YOUR-URL-HERE]"))
.build();
return new Action.Builder(Action.TYPE_VIEW)
.setObject(object)
.setActionStatus(Action.STATUS_TYPE_COMPLETED)
.build();
}
@Override
public void onStart() {
super.onStart();
client.connect();
AppIndex.AppIndexApi.start(client, getIndexApiAction());
}
@Override
public void onStop() {
super.onStop();
AppIndex.AppIndexApi.end(client, getIndexApiAction());
client.disconnect();
}
public void but_wel(View view) {
TextView texwel= (TextView) findViewById(R.id.welcome);
Intent intent=new Intent(this,com_under.class);
startActivity(intent);
}
}
ComputerAdapter.java
package com.example.asus.myapplication;
import android.content.Context;
import android.graphics.Typeface;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.ExpandableListView;
import android.widget.TextView;
import java.lang.reflect.Type;
import java.util.HashMap;
import java.util.List;
/**
* Created by ASUS on 20/09/16.
*/
public class ComputerAdapter extends BaseExpandableListAdapter {
private Context cxt;
private HashMap<String,List<String>>Computer_Category;
private List<String>Computer_List;
public ComputerAdapter(Context cxt,HashMap<String,List<String>>Computer_category,List<String>Computer_list){
this.cxt=cxt;
this.Computer_Category=Computer_category;
this.Computer_List=Computer_list;
}
@Override
public int getGroupCount() {
return Computer_List.size();
}
@Override
public int getChildrenCount(int arg0) {
return Computer_Category.get(Computer_List.get(arg0)).size();
}
@Override
public Object getGroup(int arg0) {
return Computer_List.get(arg0);
}
@Override
public Object getChild(int parent, int child) {
return Computer_Category.get(Computer_List.get(parent)).get(child);
}
@Override
public long getGroupId(int arg0) {
return arg0;
}
@Override
public long getChildId(int parent, int child) {
return child;
}
@Override
public boolean hasStableIds() {
return false;
}
@Override
public View getGroupView(int parent, boolean isExpanded, View convertView, ViewGroup parentview) {
String group_title= (String) getGroup(parent);
if (convertView==null){
LayoutInflater inflator= (LayoutInflater) cxt.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView=inflator.inflate(R.layout.parent_layout,parentview,false);
}
TextView parent_txetview= (TextView) convertView.findViewById(R.id.parent_txt);
parent_txetview.setTypeface(null, Typeface.BOLD);
parent_txetview.setText(group_title);
return convertView;
}
@Override
public View getChildView(int parent, int child, boolean LastChild, View convertView, ViewGroup parentview) {
String child_title= (String) getChild(parent,child);
if (convertView==null){
LayoutInflater inflater= (LayoutInflater) cxt.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView=inflater.inflate(R.layout.child_layout,parentview,false);
}
TextView child_textview= (TextView) convertView.findViewById(R.id.chlid_txt);
child_textview.setText(child_title);
return convertView;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return false;
}
}
Есть ли какой-нибудь код, который я должен добавить сюда?
DataProvider.java
package com.example.asus.myapplication;
import android.widget.ExpandableListView;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
* Created by ASUS on 20/09/16.
*/
public class DataProvider {
public static HashMap<String,List<String>>getInfo()
{
HashMap<String,List<String>>ComputerDetails=new HashMap<String, List<String>>();
List<String>Computer_Engineering=new ArrayList<>();
Computer_Engineering.add("UNDERGRUATE");
Computer_Engineering.add("GRUATE");
List<String>Software_Engineering=new ArrayList<>();
Software_Engineering.add("UNDERGRUATE");
Software_Engineering.add("GRUATE");
List<String>Information_Engineering=new ArrayList<>();
Information_Engineering.add("UNDERGRUATE");
Information_Engineering.add("GRUATE");
ComputerDetails.put("Computer Engineering",Computer_Engineering);
ComputerDetails.put("Software Engineering",Software_Engineering);
ComputerDetails.put("Information Engineering",Information_Engineering);
return ComputerDetails;
}
}
примечание: expandablelistview
в конце действия:
side_screen.Xml
<?xml version="1.0" encoding="utf-8"?>
<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"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context="com.example.asus.myapplication.side_screen"
android:background="#d6d7d7">
<include layout="@layout/toolbar"
android:id="@ id/toolbar"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="150dp"
android:background="@drawable/cover"
android:id="@ id/imageView4"
android:orientation="vertical"
android:layout_below="@ id/toolbar"
android:layout_alignParentStart="true">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Welcome To Labib Academey "
android:textSize="25dp"
android:layout_marginTop="22dp"
android:id="@ id/welcome"
android:onClick="but_wel"
android:layout_gravity="center"
android:textStyle="bold"
android:textColor="#025e1e"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Now,choose your cours from "
android:textSize="23dp"
android:layout_marginTop="10dp"
android:id="@ id/welcome2"
android:layout_gravity="center"
android:textStyle="bold"
android:textColor="#025e1e"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" computer sciences below."
android:textSize="23dp"
android:layout_marginTop="10dp"
android:id="@ id/welcome3"
android:layout_gravity="center"
android:textStyle="bold"
android:textColor="#025e1e"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="vertical"
android:background="#0a5951"
android:layout_marginTop="200dp"
android:id="@ id/linearLayout3">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="The best websites in computer science"
android:layout_gravity="center"
android:paddingBottom="15dp"
android:textColor="#ffffffff"
android:textSize="19dp"
android:textStyle="bold"
android:id="@ id/textView7"
android:layout_marginTop="20dp"
android:layout_below="@ id/imageView4"
android:layout_centerHorizontal="true" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="20dp"
android:orientation="horizontal"
android:background="#ffffff"
android:gravity="center"
android:layout_marginTop="375dp"
android:id="@ id/linearLayout2"
android:layout_centerHorizontal="true">
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:background="#0a5951"
android:orientation="vertical"
android:layout_marginTop="390dp" >
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Computer courses"
android:textColor="#ffffff"
android:textStyle="bold"
android:textSize="20dp"
android:padding="15dp"
android:gravity="center"/>
</LinearLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#f7f3f3"
android:layout_marginTop="260dp"
android:layout_alignBottom="@ id/linearLayout2"
android:layout_alignParentStart="true">
<ImageView
android:layout_width="270dp"
android:layout_height="140dp"
android:id="@ id/image_show"
android:src="@drawable/bri_4"
android:layout_gravity="center_horizontal"
android:layout_below="@ id/linearLayout3"
android:layout_centerHorizontal="true" />
<ImageButton
android:layout_width="50dp"
android:layout_height="80dp"
android:id="@ id/next"
android:src="@mipmap/ic_next1"
android:background="@color/color0"
android:layout_marginTop="25dp"
android:layout_below="@ id/linearLayout3"
android:layout_alignParentEnd="true" />
<ImageButton
android:layout_width="50dp"
android:layout_height="80dp"
android:id="@ id/back"
android:background="@color/color0"
android:layout_marginTop="25dp"
android:src="@mipmap/ic_back1"
android:layout_alignBottom="@ id/next"
android:layout_alignParentStart="true" />
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@ id/scroll"
android:background="#f9f7f7"
android:layout_marginTop="450dp">
<ExpandableListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@ id/exp_list"
android:divider="#A4C739"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:dividerHeight="1dp"
android:indicatorRight="?android:attr/expandableListPreferredChildIndicatorRight"
android:nestedScrollingEnabled="true"/>
</LinearLayout>
</RelativeLayout>
parent_screen.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@ id/parent_txt"
android:textColor="#1a912c"
android:textSize="20dp"
android:paddingTop="10dp"
android:paddingBottom="10dp"/>
</LinearLayout>
Пожалуйста, помогите мне как можно скорее.
Комментарии:
1. Ваш вопрос крайне плох.. Если я правильно понял ваш вопрос, вам просто нужно начать действие
Exp_list.setOnItemClickListener
. Для парня, который написал так много кода, не должно быть сложно понять эту мелочь… Если я неправильно понял ваш вопрос, вы должны подробно описать, что вы хотите..
Ответ №1:
Вам нужно установить прослушиватель в вашем расширяемом списке и в нем открыть действие:
listView.setOnItemClickListener(new OnItemClickListener(onItemClick(AdapterView<?> parent, View view, int position, long id) {
// Launch the activity
Intent intent = new Intent(context, ActivityToOpen.class);
context.startActivity(intent);
});
Комментарии:
1. например, я хотел бы перейти к другому действию при нажатии на первый элемент по второму адресу … как это можно написать, пожалуйста
2. Я не уверен, что точно понимаю, что вы хотите сделать. Если вы хотите открыть действие только при нажатии на первый элемент списка, вы можете проверить, равна ли позиция 0 внутри прослушивателя кликов. Если это так, откройте действие.
3. Если мой ответ решил вашу проблему, пожалуйста, отметьте его как правильный ответ! Приветствия!