In my project, I use an Activity called PigeonSketch and whenever I open the Activity it gives android.view.InflateException: Binary XML file line #15: Error inflating class <unknown>
Here is my Activity class and XML layout file
public class PigeonSketch extends Activity {
private RelativeLayout dashBoard;
private ImageView imagePigeon;
private Button search;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.pigeon_sketch);
setTitle("Pigeon")
dashBoard = (RelativeLayout) findViewById(R.id.pigeon_dashBoard);
imagePigeon = (ImageView) findViewById(R.id.pigeonsketch);
search = (Button) findViewById(R.id.searchButton)
}
And the layout:
<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: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=".GridViewList" >
<RelativeLayout
android:id="#+id/pigeon_dashBoard"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp" >
<ImageView
android:id="#+id/pigeonsketch"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:contentDescription="#string/app_name"
android:src="#drawable/image_pigeon"
android:visibility="invisible" />
</RelativeLayout>
<Button
android:id="#+id/searchButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:text="Search" />
</RelativeLayout>
How can I solve this issue?
try to change
tools:context=".GridViewList"
to this
tools:context=".PigeonSketch"
or remove the line..
First you are using wrong tools reference :
tools:context=".PigeonSketch"
Second you define Button in xml and find using ImageButton so replace ImageButton with Button in Activity :
private Button search;
search = (Button) findViewById(R.id.searchButton)
Related
I am trying to add an EditText within a TextView. My idea is to build a two activities, wherein in the first activity, fill in the blanks type of question will be entered in EditText and will be sent to second activity on button click and in second activity I want the text entered in the first activity to be displayed along with the EditText in the place of blank where it needs to answered.
My whole idea was to enter fill in the blank question with underscore at the place to be answered in the first activity and to display the question in the second activity by replacing the underscore with EditText.
first activity class code:
public class FirstActivity extends AppCompatActivity {
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);
}
public void onButtonClick(View view)
{
if (view.getId() == R.id.button)
{
EditText editText = (EditText) findViewById(R.id.editText);
String text = editText.getText().toString();
Intent intent = new Intent(this, Main2Activity.class);
intent.putExtra("mytext", text);
startActivity(intent);
}
}
}
First activity layout code:
<?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:id="#+id/activity_main"
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=".FirstActivity">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:ems="10"
android:layout_marginTop="48dp"
android:id="#+id/editText"
android:hint="Enter here"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
<Button
android:text="Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="#+id/editText"
android:layout_centerHorizontal="true"
android:layout_marginTop="100dp"
android:id="#+id/button"
android:onClick="onButtonClick" />
</RelativeLayout>
Second Activity Class:
public class SecondActivity extends AppCompatActivity {
TextView textView;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
TextView textview1 = (TextView) findViewById(R.id.textView);
int positionX = textview1.getLeft();
int positionY = textview1.getRight();
EditText ed = new EditText(this);
ed.setEnabled(false);
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) ed.getLayoutParams();
params.leftMargin = positionX;
params.topMargin = positionY;
params.width = 30;
ed.setLayoutParams(params);
textview1.setText(getIntent().getStringExtra("mytext"));
}
}
Second Activity Layout:
<?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:id="#+id/activity_main2"
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=".SecondActivity">
<TextView
android:text="TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
android:layout_marginStart="33dp"
android:layout_marginTop="47dp"
android:id="#+id/textView" />
</RelativeLayout>
You could split your text with your underscore characters, then, programmatically add TextViews and EditText.
Take a look at this.
So I am following the documentation for creating a first app from here. and this is what I have so far nothing complicated
import static android.R.attr.id;
public class MainActivity extends AppCompatActivity {
public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
/** Called when the user clicks the Send button */
public void sendMessage(View view) {
Intent intent = new Intent(this, DisplayMessageActivity.class);
EditText editText = (EditText) findViewById(id.edit_message);
String message = editText.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);
}
}
and my other activity is
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.ViewGroup;
import android.widget.TextView;
public class DisplayMessageActivity extends AppCompatActivity {
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display_message);
Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
TextView textView = new TextView(this);
textView.setTextSize(40);
textView.setText(message);
ViewGroup layout = (ViewGroup) findViewById(R.id.activity_display_message);
layout.addView(textView);
}
}
In my MainActivity I have this causing the problem
EditText editText = (EditText) findViewById(R.id.edit_message);
and the problem is android studio says that
Error:(25, 55) error: int cannot be dereferenced
I am not sure what R.id.edit_message is and where it should be placed ? In my resources i do not have anything called edit_message any suggestions on how I can fix this issue ?
this is what my activity_main.xml looks like
<?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:id="#+id/activity_main"
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.example.admin.test.MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="#string/button_send"
android:onClick="sendMessage" />
</RelativeLayout>
You should should change the TextView in your layout to EditText
That is change
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
to
<EditText
android:id="#+id/edit_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="text"/>
You complete layout will look like this
<?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:id="#+id/activity_main"
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.example.admin.test.MainActivity">
<EditText
android:id="#+id/edit_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="text"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="#string/button_send"
android:onClick="sendMessage" />
</RelativeLayout>
You are getting this error because in your activity_main.xml, you are trying to reference an EditText that is not there yet. Add the code below into your activity_main.xml
<EditText
android:id="+id/edit_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
The code below which is in your MainActivity.java is basically creating a connection between the EditText in your xml to the java.
EditText editText = (EditText) findViewById(R.id.edit_message);
You need to give an id to all your widgets in your xml code with the id property.
Format to do that is:
android:id="#+id/myId"
and then you can access any element by using its id in your Java code
EditText et=(EditText) findViewById(R.id.myId);
PS: You also seem to be accessing a EditText which is not present in your layout file.
I created a message activity and it works but my problem is the xml layout that I created is not showing, only the message or vice versa (the layout is showing without the message).How do I solve this?
here is the code of the class:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
String message = intent.getStringExtra (MESSAGE_KEY);
TextView textView = new TextView(this);
textView.setTextSize(40);
textView.setText (message);
setContentView(textView);
setContentView(R.layout.activity_fire_alert);
}
and here is the xml file that i want to show
<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.user.tictactoeniandy.FireAlertActivity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="View Sender Location"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="91dp"
android:id="#+id/loc_button1"/>
</RelativeLayout>
You can only have 1 content view. The second one you set overwrites the other. The correct way to do this is to have a TextView inside your layout, and to set the text on that view to the message
<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:orientation:"vertical"
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.user.tictactoeniandy.FireAlertActivity">
<TextView
android:id="#+id/loc_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="View Sender Location"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="View Sender Location"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="91dp"
android:id="#+id/loc_button1"/>
</LinearLayout>
and in your activity code,
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fire_alert);
Intent intent = getIntent();
String message = intent.getStringExtra (MESSAGE_KEY);
TextView textView = (TextView)findviewbyid(R.id.loc_textview);
textView.setTextSize(40);
textView.setText (message);
}
you can have only one set content view. try to update your layout and code with mine and check it will show both.
The setContentView() method, as the name suggests, sets the content of your activity. To solve this, place your TextView directly on your layout file, for example:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
...
...>
<Button
android:layout_width="wrap_content"
android:layout_height="
...
.../>
<TextView
android:id="#+id/text_view_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="40sp"
android:layout_centerInParent="true"/>
</RelativeLayout>
On your Java code, make a TextView using the id you just created on your layout, then set the message text on it.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fire_alert);
TextView textView = (TextView) findViewById(R.text_view_message);
Intent intent = getIntent();
String message = intent.getStringExtra (MESSAGE_KEY);
textView.setText (message);
}
I am trying to insert a paragraph in android application.
My code is like this:
MainActivity:
public class MainActivity extends ActionBarActivity {
TextView t;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView t = (TextView) findViewById(R.id.text);
t.setText("This is the first line\nThis is the second line\nThird line...");
}
activity_main.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: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.example.helloworld_5.MainActivity$PlaceholderFragment" >
<TextView
android:text="#+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
Unfortunately The app is not working.What else I need to include?
Please help..
Change the text attribute of your TextView to id in your xml file...
<TextView
android:id="#+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
This worked for me:
TextView t = (TextView) findViewById(R.id.textView);
t.setText(Html.fromHtml("<p>This is the first line</p>
<p>This is the second line</p><p>Third line...</p>"));
I am trying to show textview items from entries in edittext on button click to listview in another layout with scrollview.. Code is not running.. application error so help me.
this is my 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: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=".MainActivity" >
<Button
android:id="#+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="#+id/spinner1"
android:layout_toRightOf="#+id/editText5"
android:text="#string/add" />
<EditText
android:id="#+id/editText5"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:layout_alignLeft="#+id/textView5"
android:layout_alignTop="#+id/textView5"
android:layout_marginTop="8dp"
android:ems="10"
android:inputType="number" />
<RelativeLayout
android:layout_width="70dp"
android:layout_height="140dp"
android:layout_alignParentLeft="true"
android:layout_alignTop="#+id/spinner1"
android:layout_marginTop="17dp" >
<ScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scrollbars="vertical">
</ScrollView>
<ListView
android:layout_width="wrap_content"
android:layout_height="125dp">
</ListView>
this is my java code.
private Button mbtn_currencyadd;
private EditText medit_currency;
private TextView mtv1=null;
private ListView mlv;
public String s1;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mtv1=new TextView(this);
mlv.addView(mtv1);
//mll2.addView(mtv2);
mbtn_currencyadd=(Button)findViewById(R.id.button3);
medit_currency=(EditText)findViewById(R.id.editText5);
mbtn_currencyadd.setOnClickListener(new OnClickListener() {
#Override
public void onClick(View v) {
// TODO Auto-generated method stub
s1=medit_currency.getText().toString();
s1=mtv1.getText().toString()+"\n"+s1;
mtv1.setText(s1);
mtv1.setTextSize(17);
medit_currency.setText("");
}
});
Have a look at this example.
It is very similar to what you are looking for.Items are added dynamically from Edit text to list view on button click
You can ask if you have any further queries :)
Of course it won't work. Here's why: -
You list view doesn't have an id
You are not getting a reference to your listview (m1v) in your activity
In order to add items to a listview, you need to create an adapter
See this example http://developer.android.com/guide/topics/ui/layout/listview.html